2013-03-12 109 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