有没有办法将STDERR和STDOUT传递给不同的程序?

时间:2013-05-26 19:00:13

标签: batch-file stdout stderr tee

例如,我需要设置两个tee命令,使得一个将从STDOUT读取,第二个从STDERR读取,并将控制台输出重定向到不同的文件。在Windows批处理文件中是否可以这样做?我知道如何将输出重定向到文件,但在这种情况下,它不会显示在屏幕上或如何组合两个流,但如何独立管道?

2 个答案:

答案 0 :(得分:2)

您可以通过下一个技巧处理STDOUT和STDERR以及单独的程序:

(test | findstr /N /A:2A "^" ) 2>&1 1>&3 | findstr /N /A:4E "^"

上一行显示STDOUT输出前面是绿色数字,STDERR输出后面是红色输出。只需使用您的TEE程序代替找到...

如果批处理文件没有足够的TEE程序,可以在此处找到:[{3}}

答案 1 :(得分:0)

您可以将stdout和stderr重定向到不同的文件,但这就是它的大概。

如果make输出可以在每一行进行时间编码,那么这两个文件就可以调整并重新交错。