重定向标准错误;输出流被推迟

时间:2013-04-17 13:54:32

标签: windows perl redirect cmd

我需要重定向输出&从一个Windows进程(GNU make.exe执行armcc工具链)到perl上写的一些过滤器的错误流。我正在运行的命令是:

Make Release 2>&1 | c:\cygwin\bin\perl ../tools/armfilt.pl

编译过程抛出一些打印件,经过一些修改后应该放到STDOUT。但我遇到了一个问题:make生成的所有打印实际上都被推迟到make的过程结束,然后才会显示给用户。所以,我的问题是:

  1. 为什么会这样?我试图将第二个进程(perl.exe)的优先级从“正常”更改为“高于正常”,但它没有帮助......
  2. 如何克服这个问题?
  3. 我认为可能的解决方法之一可能是只将STDERR打印件发送到perl(这是我实际需要的),而不是STDOUT+STDERR。但我不知道如何在Windows中执行此操作。
  4. 微软关于管道运营商使用的解释说:

      

    管道运算符(|)获取一个输出(通过默认值,STDOUT )   命令并将其指向另一个的输入(默认为STDIN)   命令。

    但是没有解释如何更改此默认STDOUT管道。它有可能吗?

0 个答案:

没有答案