批处理文件默认情况下返回最后一个命令的错误代码。
是否可以以某种方式返回前一个命令的错误代码。最值得注意的是,是否可以在管道中返回命令的错误代码?
例如,此单行批处理脚本
foo.exe
返回foo的错误代码。但是这个:
foo.exe | tee output.txt
始终返回tee的退出代码,该代码为零。
最佳答案
我遇到了类似的问题,因此决定采用以下解决方案,因为我不需要检测确切的错误代码,而只是检测成功还是失败。
echo > .failed.tmp
( foo.exe && del .failed.tmp ) | tee foo.log
if exist .failed.tmp (
del .failed.tmp
exit /b 1
) else (
exit /b 0
)
关于windows - 如何在Windows批处理编程中获取管道中命令的错误级别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/877639/