異なるパラメータを使用して同じ実行可能ファイルを何度も呼び出すバッチ ファイルがあります。呼び出しの 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 に遭遇したことはありません。