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