エラーが発生したときにバッチファイルを終了させるにはどうすればよいですか? 質問する

エラーが発生したときにバッチファイルを終了させるにはどうすればよいですか? 質問する

異なるパラメータを使用して同じ実行可能ファイルを何度も呼び出すバッチ ファイルがあります。呼び出しの 1 つが任意のレベルのエラー コードを返した場合に、直ちに終了させるにはどうすればよいですか。

基本的に、MSBuild の と同等のものが欲しいですContinueOnError=false

ベストアンサー1

errorlevelステートメントで をチェックしif、0 以外の値があるかどうかを確認しますexit /b(cmd.exe プロセス全体ではなく、バッチ ファイルのみを終了します) 。

same-executable-over-and-over.exe /with different "parameters"
if %errorlevel% neq 0 exit /b %errorlevel%

エラーレベルの値をバッチファイルの外部に伝播させたい場合

if %errorlevel% neq 0 exit /b %errorlevel%

しかし、これが内部にある場合はfor少し複雑になります。次のようなものが必要になります。

setlocal enabledelayedexpansion
for %%f in (C:\Windows\*) do (
    same-executable-over-and-over.exe /with different "parameters"
    if !errorlevel! neq 0 exit /b !errorlevel!
)

編集:各コマンドの後にエラーをチェックする必要があります。cmd.exe/command.comバッチには、グローバルな「エラー時にgoto」タイプの構造はありません。また、コードを更新しました。コードモンキーただし、XP または Vista でのバッチ ハッキングでは、負の errorlevel に遭遇したことはありません。

おすすめ記事