bashでは、スクリプトの先頭にある "set -e"は、コマンドの最初の失敗時にスクリプト全体を失敗させるようにbashに指示します。DOSバッチスクリプトの "set -e"はありますか?
Windowsのバッチスクリプトではどうすればよいですか?
bashでは、スクリプトの先頭にある "set -e"は、コマンドの最初の失敗時にスクリプト全体を失敗させるようにbashに指示します。DOSバッチスクリプトの "set -e"はありますか?
Windowsのバッチスクリプトではどうすればよいですか?
直接実行するのではなく、実行する行がある行ごとに以下を追加することができます。
|| goto :error
次に、エラーを定義してスクリプトを停止します。
:error
exit /b %errorlevel%
トゥイムの解は機能しますが、さらに簡単にすることができます。
ERRORLEVELはすでに設定されているため、ERRORLEVELを設定するラベルをGOTOにする必要はありません。
あなたは、単にあなたがCALLの途中である場合、終了/ bは、現在のサブルーチンを終了することを
yourCommand || exit /b
注意を使用することができます。スクリプトのルートに達するまで、スクリプトはレイヤーごとに各CALLを終了する必要があります。それは限り、あなたはまた、どのCALL深さからすぐに終了するバッチスクリプトを強制することが可能である各CALL文の後
call :label || exit /b
をテストを置くと自動的に行われます。詳細はHow can I exit a batch file from within a function?を参照してください。両方の答えを必ず読んでください。受け入れられた答えには、潜在的に重大な欠点がいくつかあります。
bashと同じくらいうまくないですが、十分に良いです。 – mark
+1ですが、さらに簡単な解決策があります。 [私の答え](http://stackoverflow.com/a/13863374/1012053)を参照してください。 – dbenham