使用Windows任务调度程序我正在运行多个命令,我将其称为task1.bat,task2.bat和task3.bat。这些scrips中的每一个都运行不同的Psexec命令(psexec版本2.11)。
当单独运行task1.bat,task2.bat和task3.bat时,这些脚本成功运行;但是当连续运行时,task1.bat将成功运行,然后task2.bat和task3.bat通常会失败并显示错误“无法访问服务器名。访问被拒绝。命令的语法不正确”。
Psexec似乎是一个错误,因为当单独运行时,命令工作正常。有没有办法在进入下一个脚本之前强制Psexec退出/结束(除了只是暂停)?似乎psexec挂起导致下一个失败。
答案 0 :(得分:0)
如果您创建并运行批处理文件,则.bat脚本将按顺序运行:
CALL task1.bat
CALL task2.bat
CALL task3.bat
答案 1 :(得分:-1)
您应该只是等待启动可执行文件。
start /wait psexec.exe
或只是
start /w psexec.exe
所以我个人建议你摆脱3个批处理文件,创建一个文件并让每个可执行文件运行等待,当它完成时,执行到下一个等等。
类似的东西:
start /w psexec do something
echo First process completed
start /w psexec do next thing
echo Second process completed
start /w psexec do last thing
echo /w This process completed
这会按序列运行每个psexec,而下一个psexec只会在前一个psexec完成时启动。
如果您不希望它们彼此直接执行,您也可以添加超时。
start /w psexec do something
echo First process completed
timeout 300
start /w psexec do next thing
echo Second process completed
timeout 400
start /w psexec do last thing
timeout 100
echo /w This process completed