ac#プロジェクトのいくつかのコマンドを実行するビルド後のイベントがあります。最後のコマンドにより、ERRORLEVEL値がゼロに等しくなく、ビルドが失敗することがありました。
ERRORLEVEL値を常にゼロに設定するコマンド行を追加したいと思います。それを行うための最も便利な方法は何ですか?
ac#プロジェクトのいくつかのコマンドを実行するビルド後のイベントがあります。最後のコマンドにより、ERRORLEVEL値がゼロに等しくなく、ビルドが失敗することがありました。
ERRORLEVEL値を常にゼロに設定するコマンド行を追加したいと思います。それを行うための最も便利な方法は何ですか?
使用すると、親を終了することなく、子バッチ スクリプト内で fromexit /b 0
を返すことができます。errorlevel 0
トリックを行うようです:
ver > nul
すべてが機能するわけではなく、その理由は明らかではありません。たとえば、次の場合はそうではありません。
echo. > nul
cls > nul
ビルド前またはビルド後のイベントで、実行可能ファイルのリターン コードが 0 より大きく、実行可能ファイルへの呼び出しがビルド前またはビルド後のイベントの最後の行でない場合、それをミュートし、ゼロ以外のチェックをトリガーしないerrorlevel
ようにすることは、失敗した行の後に明示的にゼロを返す行を続けることです。
cmd /c "exit /b 0"
これは基本的に、ビルド前またはビルド後のイベントの最後の行だけでなく、前述のソリューションの一般的な組み合わせです。
「exit 0」は、この問題に対処する良い方法のように見えます。
使用例:
NET STOP UnderDevService /Y
出口 0
UnderDevService サービスが開始されていない場合。
使っVERIFY
たりVERIFY > nul
失敗する可能性がある各コマンドの後に追加>nul
します。これにより、ビルドが失敗するのを防ぐことができます。
を調べることで、コマンドの結果を確認できます%errorlevel%
。
例えば:
findstr "foo" c:\temp.txt>nul & if %errorlevel% EQU 0 (echo found it) else (echo didn't find it)
私はいつも使っていました。
set ERRORLEVEL=0
ロバの年にそれを使用しています。