Windowsバッチスクリプト内でエラーを頻繁に処理する方法は、
if errorlevel 1 ...
またはif %errorlevel% neq 0 ...
のようなものを使用することです。多くの場合、ERRORLEVELを保持するためにエラー処理コードが必要です。成功すると、cmd.exeの内部コマンドによってERRORLEVELが0にクリアされますか?
私はすべての外部コマンドが常にERRORLEVELに何らかの値を設定すると考えているので、エラー処理コードは外部コマンドを実行する前に環境変数にERRORLEVELを保持する必要があります。
しかし、内部コマンドについてはどうですか?問題は、内部コマンドによっては、成功したときにERRORLEVELを0にクリアするコマンドと、成功しなかったときにERRORLEVELを0にクリアするコマンドがあります。そして、どのコマンドが何をするのかを指定するドキュメントは見つかりません。
問題はです。内部コマンドは、成功するとERRORLEVELを0にクリアしますか?これはではなく、返されたERRORLEVELコードに関する一般的な質問ですが、厳密には成功の結果についてです。
部分回答を示すWhat is the easiest way to reset ERRORLEVEL to zero?とWindows batch files: .bat vs .cmd?のような投稿があります。しかし、私は包括的なリストを見たことがありません。
注:私は長年、この好奇心てきました。だから私は最終的に一連の実験を行い、決定的な答えを出すことにしました。私はこのQ &を投稿して、私が見つけたものを共有しています。
参照:http://stackoverflow.com/questions/34987885/what-are-the-errorlevel-values-set-by-internal- cmd-exe-commands/ – Aacini