我有两个批处理文件位于两台不同的机器上,完成一项任务。
假设第一批在机器A上,第二批在机器B上。
我希望如果机器A上的一个批次失败失败,那么机器B上的第二批应该跳过。
因为如果第一个批处理文件在我的脚本中失败,则无法运行第二个批处理文件。
任何想法。
感谢。
答案 0 :(得分:2)
您可以使用WAITFOR
在机器B中,等待2分钟来编写脚本A以完成
WAITFOR /T 120 mySignal
IF errorlevel 1 (
Echo Script A failed
)
在机器A中,如果一切正常,发送信号到机器B继续
WAITFOR /S machineB /SI mySignal
答案 1 :(得分:1)
这取决于Machine A批处理文件的失败方式。
如果批次A中的exe退出,则可以使用PSexec检查机器A上的任务列表,如果未运行,则使用批处理B中的分支。
但是,如果EXE没有响应,那么它仍然会在任务列表中,你必须检测它是否没有响应。
答案 2 :(得分:0)
尝试使用IF ERRORLEVEL
构建。
如果没有问题(例如,EXIT 0
)并且出现问题(例如,EXIT 1
),您的第一个批处理文件应返回特殊代码。
在运行第二个批处理文件之前,您的脚本将检查此错误代码。它看起来像这样:IF ERRORLEVEL 0 CALL SECOND.BAT