我在a.bat
中有batch-file server A
,在b.bat
中有batch-file server B
。
a.bat
使用wmic调用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"
答案 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