題 無法將.exe輸出重定向到文件


我正在嘗試捕獲程序的輸出,然後將其寫入文件。

運行 MyFile.exe -args > foo.txt 給出一個空文件。同樣的道理 MyFile.exe -args > foo.txt 2>&1。如果我像往常一樣運行命令, MyFile.exe -args,輸出清楚地寫入控制台。

該程序是用C ++編寫的,並使用 wprintf_s。如果重要的話,似乎在最後一行附加了換行符。

我很欣賞有關如何使其發揮作用的任何想法。如果有人關心重現: 我正在使用的文件 和 它的GitHub頁面 (VirusTotal報告)。


4
2018-05-20 17:37


起源


您使用bash作為cmd.exe或psh的替代品嗎? - Hennes
@Hennes對不起,我的意思是cmd.exe。有一段時間沒有使用Windows,所以終端是我的bash :-)。 - Zar
@Psycogeek:沒關係,我們可以找出解決方法。更有趣的是,為什麼以及如何以這種方式表現這種EXE,以及如何將其輸出重定向到文件? - Karan
@Psycogeek在路徑之後添加參數沒有幫助,但是好主意。是的,我們的想法是解析輸出以檢測在間隔期間刪除/添加的設備。可能有可能以其他方式檢測到這一點(儘管API似乎是私有的),但這讓我很好奇。 - Zar
搜索顯示,清除了這些評論 stackoverflow.com/questions/29000655/... 堆棧溢出問題,有相似之處。從表面上看,它可以改變工作方式嗎? - Psycogeek


答案:


您可以將其寫入腳本文件並將輸出重定向到所需的文件

例如: echo“MyFile.exe -args”> file.sh

然後嘗試執行腳本文件並將文件的輸出和錯誤移動到您需要的文本文件

即) sh file.sh> foo.txt 2>&1

這會奏效!它將在單獨的文本文件中寫入輸出以及可執行文件(.exe文件)的錯誤。


0
2018-01-05 13:38



請仔細閱讀問題。你的答案是 不 回答原來的問題。問題是詢問Windows命令行而不是bash - DavidPostill♦