Windows – Save output and exit code of command to files on windows

command-line-interfacewindowswindows-command-prompt

I want to run a command and save its output and its exit code, in different files.

Here's what i am doing:

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

If i don't do output redirection (into %TEMP%\output.log and/or %TEMP%\error.log), then exit code is saved just fine.
However, when i run the line as shown above more than once (just get back to previous line in command prompt and rerun it), i get 0 in %TEMP%\status regardless of the real exit code.

What am i missing?
Or maybe there's a better way of doing this?

Best Answer

What you're doing won't save the exit code, as you're not capturing it. The simplest way is to run the command from inside a batch file. Redirect the output as normal and have the batch file save the ERRORLEVEL value to the second file.