当另一个批处理脚本在不同的服务器上运行时,如何暂停执行批处理脚本?

时间:2019-04-29 13:28:00

标签: batch-file wmic

我在a.bat中有 server A,在b.bat中有 server B

a.bat使用调用b.bat

现在的问题是,a.bat的执行不会等待b.bat完成,这会影响a.bat中出现的连续命令的结果。

这是我在a.bat (来自server A中的命令,该命令调用b.bat(来自服务器B)

WMIC /NODE:"<IP of server A>" /user: <user ID> /password: <password> process call create "<path to b.bat in server B>\b.bat"

1 个答案:

答案 0 :(得分:0)

有一个几乎未知的命令waitfor

a.bat中等待信号:

WMIC /NODE:"<IP of server A>" /user: <user ID> /password: <password> process call create "<path to b.bat in server B>\b.bat"
waitfor "ClientReady"
echo Client is ready.

b.bat中发送信号:

rem do what's to do
waitfor /si "ClientReady"

waitfor /si signal将信号发送到网络中的所有计算机(除非另行声明),而waitfor signal仅等待信号到达(无限期,直到另行声明为止)。请参见waitfor /?选项和开关。

注意:信号名称区分大小写。

对于测试,您不需要两台计算机,同一台计算机上的两个cmd窗口也可以工作(默认情况下,它们位于同一网络中)

如果/t失败,我强烈建议b.bat imeout开关。超时后,%errorlevel%将为1,否则为0