windows - 如何在 Windows 批处理程序中获取管道中命令的错误级别?

标签 windows batch-file batch-processing

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

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

例如这个一行的批处理脚本

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/

相关文章:

c++ - 从 C 中的函数返回 char 数组的首选方法

c - 如何绘制涉及从文本文件打开并读取它们的代码流程图

batch-file - 7-zip 正在使用的文件

java - 通过显式调用 session.flush() 设置 Hibernate 属性 hibernate.jdbc.batch_size

php - imagick 崩溃与 PHP 5.3

windows - UDP丢包

windows - 如何在批处理脚本中找到应用程序的完整路径

windows - 通过 CMD 批处理文件卸载 Windows 更新

java - 使用 Spring 批处理处理大文件的最佳方法

batch-file - 将子目录中的文件类型复制到一个重命名文件的文件夹中,这样它们就不会被覆盖