我想运行一个命令并保存它的输出 和它是退出代码,在不同的文件中。
这是我正在做的事情:
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。
我错过了什么?或者也许有更好的方法可以做到这一点?
答案1
您所做的操作不会保存退出代码,因为您没有捕获它。最简单的方法是从批处理文件内部运行命令。正常重定向输出并让批处理文件将 ERRORLEVEL 值保存到第二个文件。