[問題]再次發問如何截取cmd的文字,存至文字檔?

作者: weakstudy (台灣高階管理人)   2016-07-04 20:54:04
如標題所問,
小弟有個"別人"寫好的程式碼(如名稱為a.exe),
執行它(a.exe)的時候,
它會自動叫起另一個windows下的cmd(如名稱為b.cmd)來顯示執行過程及結果,
但因為cmd如果輸出太多的話,
前面的資訊就會被"吃"掉(或者說看不見),
所以想問說有沒有Java(或是其他方式)可以在這個cmd執行的時候,
可以把文字也轉存成txt呢?
或是有其他軟體做的到呢?
因為b.cmd它是自動被a.exe執行,
所以不論是pipe還是重導向的方式,
都失敗,
那還能怎麼做呢?
謝謝各位高手的賜教!
作者: mars90226 (火星人)   2016-07-05 00:51:00
換個想法給他自己寫的cmd,然後自己的cmd再去call正確的cmd?你的cmd是指batch檔? 還是甚麼東西?
作者: iFEELing (ing)   2016-07-05 00:10:00
感覺這個已經不是程式端的問題了 比較偏向OS端...或許自己打一個cmd進去取代掉 或是載入模擬器跑之類的有辦法把它的stdout跟stderr偷過來.....cmd 或許可以改預設的buffer size 留多一點資料 ....de-compile a.exe 看看裡面在做什麼然後有沒有機會塞中間人進去這樣....
作者: pico2k (風月)   2016-07-04 22:28:00
不能請原作者加上log檔的處理嗎?...
作者: weakstudy (台灣高階管理人)   2016-07-05 10:44:00
b.cmd就只是單純的windows command line視窗
作者: iFEELing (ing)   2016-07-05 22:34:00
行了行了我們知道那是CMD視窗 問題是裡面跑的是什麼?
作者: PttTime   2016-07-05 22:35:00
把b.cmd改成subb.cmd b.cmd裡寫 call subb.cmd >nul 2>&1
作者: realmeat (真肉)   2016-07-06 11:56:00
把他的 cmd 偷換掉就好, 我看樓上也是這種做法
作者: obelisk0114 (追風箏的孩子)   2016-07-07 17:23:00
你要不要考慮把那個exe檔案放出來讓大家看 ?
作者: gameking (GK草祭)   2016-07-12 11:26:00
可以直接把EXE檔和CMD檔放出來給大家看看 應該比你問快
作者: weakstudy (台灣高階管理人)   2016-07-15 16:32:00
那個exe及cmd是公司自已寫的程式,應該是不能開放給大家的,謝謝大家的幫忙提醒!但是PttTime提供的方法看起來好像可行
作者: feveral (小漢堡)   2016-08-02 23:55:00
記得python的Subprocess函式庫可以把print在cmd的資料抓出

Links booklink

Contact Us: admin [ a t ] ucptt.com