重定向后继续捕获输出

时间:2010-10-22 19:58:05

标签: cmd

好的,这是一个很难的 - 我正在捕获cmd.exe的输出就好了,从管道读取yadda yadda yadda,但是然后cmd.exe批处理文件中的一行有胆量:< / p>

dir err.txt&gt; zz

..也就是说,它重定向dir命令的输出,这是cmd.exe中的内部命令。

问题是,这打破了我对输出的捕获!在那之后我无法从cmd.exe获得任何内容。

显然要重定向标准输出,它会关闭它,或者以某种方式打破它,并创建一个新的stdout来重定向输出。它永远不会恢复旧的stdout手柄。

有关如何跟踪此输出的任何想法?

2 个答案:

答案 0 :(得分:0)

你应该在一个单独的过程中调用dir err.txt。试试call dir err.txt >zz

答案 1 :(得分:0)

如果允许修改批处理文件,则可以用TEE命令替换内部重定向。

Windows有几个端口(只是谷歌“windows command tee”)。

来自维基百科: 在计算中,tee是各种命令行解释器(shell)中的命令 例如Unix shell,4DOS / 4NT和Windows PowerShell,它们显示或管道 命令的输出并将其复制到文件或变量