批处理文件默认情况下返回最后一个命令的错误代码。

是否可以以某种方式返回前一个命令的错误代码。最值得注意的是,是否可以在管道中返回命令的错误代码?

例如,此单行批处理脚本

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/

10-15 17:31