Windows:确定控制台输出来自哪个输出流#(1-9)?

Windows:确定控制台输出来自哪个输出流#(1-9)?

我以前看到过关于“突出显示” STDOUT 和 STDERR 之间的不同输出流的问题,但我想知道在 Windows 上是否有更简单的方法可以做到这一点。

我之所以感兴趣是因为我有一个以上的应用程序在流 3 和 4 上打印输出,这导致了令人困惑的结果和不必要的调试,直到我随机检查了每个可能的输出流。

有没有人有一个很好的内置解决方案来确定控制台输出来自哪个输出流?我想有应该是某种监视器(SysInternals?WMI?)可以显示控制台上打印的信息来自何处?

答案1

是否有人有一个很好的内置解决方案来确定控制台输出来自哪个输出流?

你可以使用重定向语法相应见STDOUT 与 STDERR 分隔文件在下面这个例子中,fileA 包含 STDOUT,而 fileB 包含 STDERR。

例子: command >> fileA 2>> fileB Redirect output and errors to separate files

STDIN  = 0 Keyboard input 
STDOUT = 1 Text output 
STDERR = 2 Error text output 
UNDEFINED = 3-9

 command 2> filename       Redirect any error message into a file   
 command 2>> filename      Append any error message into a file  
(command)2> filename       Redirect any CMD.exe error into a file   
 command > file 2>&1       Redirect errors and output to one file       
 command > fileA 2> fileB  Redirect output and errors to separate files

来源


更多资源

相关内容