2013-03-12 17 views
1

我想重定向命令的控制台输出。
事情是命令中途挂起(或多或少)和即使它输出到控制台的日志文件是空的。我也尝试过wtee.exe:com.exe | %pat%wtee.exe log.txt但它不起作用。我需要实时转储控制台的东西。 我接受几乎任何解决方案,包括C++和PowerShell csript等如何在win7中记录未完成/无响应/挂起命令的输出?

,因为我需要它来发布一些详细输出(https://superuser.com/questions/564468/how-can-i-store-encfs6-xml-in-another-location-and-still-make-it-detectable

在此先感谢

更新的记录:

Wohoo它的工作原理。
显然我不得不删除日志文件我运行的批处理脚本之前+我不得不标准错误重定向到标准输出管道之前wtee.exe像这样:如果我使用

mycommand.exe 2>&1 | wtee.exe -a %abspath%log.txt 

然后

mycommand.exe 2>&1 | wtee.exe %abspath%log.txt 

我不必每次都删除文件。
有趣的想法与baretail,但现在没有必要它。流将被发送到控制台和日志文件。

多谢

UPDATE2:我也用的GnuWin32标记,因为发球和wtee是几乎相同的,所以这也适用于tee.exe,我想!

回答

0

它究竟如何“不起作用”?如果将STDOUT和STDERR重定向到一个文件(command >log.txt 2>&1),会发生什么情况?你仍然在控制台上获得输出吗?如果是,则该命令不写入标准输出,因此tee(或wtee就此而言)不会得到任何输入,因为管道将command的标准输出与标准输出tee连接。在这种情况下,尝试重定向手柄3-9,直到找到命令写入的句柄。例如:

command 3>log.txt 

可以通过在一个寻呼机(例如baretail)显示日志文件补偿缺少控制台输出。

一旦你找到了手柄可以将其重定向到标准输出,然后管道将它导入tee

command 5>&1 | tee log.txt 
+0

谢谢你的灵感 – olitzadobric 2013-03-12 13:06:17