将 stderr 和 stdout 输出到文件,并且仅将 stderr 输出到命令提示符

将 stderr 和 stdout 输出到文件,并且仅将 stderr 输出到命令提示符

当我的批处理脚本运行时,我希望任何错误都显示在命令提示符上,以便用户可以立即看到它,同时抑制显示的所有标准输出。

但我希望将所有内容输出到日志文件。我该怎么做?

换句话说,

+---------+
|         | --- stderr ---------> Console
| Program |
|         | --- stdout/err -----> Log file
+---------+

答案1

有多种版本tee可供下载(或使用 VBS 或 JScript 创建),您可以将 stderr 重定向到 stdout 并通过 tee 传输所有内容。但这样一来,您就会将 stdout 和 stderr 都发送到控制台和文件。

我认为不可能将两者都发送到一个文件,而选择性地将 stderr 发送到控制台,除非所有错误的内容中都有一些特殊的东西可以用来识别错误。我怀疑是否有一致的唯一错误标识符,但如果有,解决方案可能看起来像这样:

yourScript 2>&1 | tee output.log | find "Error:" 

答案2

如果你没有tee

yourScript 2>&1 > output.log & type output.log | find "Error:"

相关内容