0

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

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

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

因为如果第一个批处理文件在我的脚本中失败,那么运行第二个批处理文件是没有意义的。

有什么想法吗。

谢谢。

4

3 回答 3

2

您可以使用等待

在机器 B 中,等待 2 分钟脚本 A 完成

WAITFOR /T 120 mySignal
IF errorlevel 1 (
    Echo Script A failed
)

在机器 A 中,如果一切正常,则向机器 B 发送信号以继续

WAITFOR /S machineB /SI mySignal
于 2013-11-05T13:24:39.293 回答
1

这取决于机器 A 批处理文件如何失败。

如果批处理 A 中的 exe 退出,那么您可以使用 PSexec 检查机器 A 上的任务列表,如果未运行,则在批处理 B 中分支。

但是,如果 EXE 只是没有响应,那么它仍然会在任务列表中,您必须检测它是否没有响应。

于 2013-11-05T13:15:34.557 回答
0

尝试使用IF ERRORLEVEL建筑。

如果一切正常(例如,EXIT 0)并且有问题(例如,EXIT 1),您的第一个批处理文件应该返回特殊代码。

并且您的脚本将在运行第二个批处理文件之前检查此错误代码。它看起来像这样:IF ERRORLEVEL 0 CALL SECOND.BAT

于 2013-11-05T13:06:18.380 回答