上一个文章bat脚本引起的问题:【Selenium】window让bat脚本后台运行,周期重置standalone服务
背景:
为了让bat文件执行不会有黑窗口停留,所以再脚本中加入了一下内容
@echo off
:: 这里控制脚本的后台执行
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit
问题在 `run("%~nx0 h",0)` 上面,window定时任务时,执行的命令是`C:\selenium\uts-cmd.bat`,执行后再脚本内容`%~nx0`参数的值是`uts-cmd.bat`,所以`mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit`执行会报错,提示找不到文件,因为这个命令默认的路径是`C:\Windows\System32`
解决:
1.直接再脚本里把文件的脚本写成绝对路径(这种方式不够灵活,因为在不同的机器上会有不同的路径,可以看个人需求,set path)
2.在设置定时时指定路径(就是一个 -d参数),如下图:
总结:
路径问题很容易被发现,需要去研究具体的代码步骤,下设计脚本的时候,可能没有注意到对应的路径规则,没有关系,出现问题要记得根据错误提示去review。