Psexec在续集中运行多个命令时失败

时间:2017-04-24 21:04:14

标签: windows batch-file cmd psexec

使用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挂起导致下一个失败。

2 个答案:

答案 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
相关问题