当一个批次从一台机器发生故障时停止

时间:2013-11-05 13:01:56

标签: batch-file

我有两个批处理文件位于两台不同的机器上,完成一项任务。

假设第一批在机器A上,第二批在机器B上。

我希望如果机器A上的一个批次失败失败,那么机器B上的第二批应该跳过。

因为如果第一个批处理文件在我的脚本中失败,则无法运行第二个批处理文件。

任何想法。

感谢。

3 个答案:

答案 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