web-dev-qa-db-ja.com

コマンドの出力と終了コードをWindows上のファイルに保存します

コマンドを実行して、その出力およびその終了コードを別のファイルに保存したいと思います。

これが私がしていることです:

cmd.exe /C command 1> %TEMP%\output.log 2> %TEMP%\error.log && echo %ERRORLEVEL% > %TEMP%\status || echo %ERRORLEVEL% > %TEMP%\status

%TEMP%\output.logおよび/または%TEMP%\error.logへの)出力リダイレクトを行わない場合、終了コードは問題なく保存されます。ただし、上記のように行を複数回実行すると(コマンドプロンプトで前の行に戻って再実行するだけです)、%TEMP%\statusで0が返されます。実際の終了コードの。

何が足りないのですか?それとも、これを行うためのより良い方法がありますか?

3
poncha

キャプチャしていないため、実行していることによって終了コードが保存されることはありません。最も簡単な方法は、バッチファイル内からコマンドを実行することです。通常どおり出力をリダイレクトし、バッチファイルにERRORLEVEL値を2番目のファイルに保存させます。

4
John Gardeniers