1 つのタスクを実行する 2 つの異なるマシンに 2 つのバッチ ファイルがあります。
最初のバッチがマシン A にあり、2 番目のバッチがマシン B にあるとします。
マシン A で 1 つのバッチが失敗した場合、マシン B で 2 番目のバッチをスキップする必要があります。
私のスクリプトで最初のバッチファイルが失敗した場合、2番目のバッチファイルを実行しても意味がないためです。
何かご意見は。
ありがとう。
1 つのタスクを実行する 2 つの異なるマシンに 2 つのバッチ ファイルがあります。
最初のバッチがマシン A にあり、2 番目のバッチがマシン B にあるとします。
マシン A で 1 つのバッチが失敗した場合、マシン B で 2 番目のバッチをスキップする必要があります。
私のスクリプトで最初のバッチファイルが失敗した場合、2番目のバッチファイルを実行しても意味がないためです。
何かご意見は。
ありがとう。
WAITFORを使用できます
マシン B で、スクリプト A が終了するまで 2 分間待機する
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
ます。
スクリプトは、2 番目のバッチ ファイルを実行する前に、このエラー コードをチェックします。次のようになります。IF ERRORLEVEL 0 CALL SECOND.BAT