[問題] 請問怎麼擷取.bat下的指令秀出來的結果

看板C_and_CPP (C/C++)作者 (Bad_To_The_Bone)時間12年前 (2013/10/03 17:44), 編輯推噓5(509)
留言14則, 5人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 問題(Question): 想請問一下 假設我要寫一個WINDOWS程式 想將執行COMMAND的OUTPUT都收集起來 比方說 在CMD裡面跑 一個time.bat ============================================== time.bat開始 @set name0=%date:~0,4% @set name1=%date:~2,2% @set name2=%date:~5,2% @set name3=%date:~8,2% @set name4=%time:~0,2% @if "%name4%" == " 1" ( set name4=01 )else if "%name4%" == " 2" ( set name4=02 )else if "%name4%" == " 3" ( set name4=03 )else if "%name4%" == " 4" ( set name4=04 )else if "%name4%" == " 5" ( set name4=05 )else if "%name4%" == " 6" ( set name4=06 )else if "%name4%" == " 7" ( set name4=07 )else if "%name4%" == " 8" ( set name4=08 )else if "%name4%" == " 9" ( set name4=09 ) @set name5=%time:~3,2% @echo %name1%%name2%%name3%_%name4%%name5% ============================================== time.bat結束 執行會把現在的時間用我期待的格式顯示在cmd的螢幕上 目前想要讓這個字串放到windows 程式的RichEdit物件裡面 然後加加顏色之類的 原本的想法是 time.bat > xxx.txt 然後用ooo.exe程式的code去開xxx.txt 但是這樣沒辦法即時 而且多disk io 想把程式改成下面的方式 在cmd裡面執行ooo.exe time.bat (叫ooo.exe 執行time.bat然後把time.bat的output都放到ooo.exe的介面上顯示) 或者是 在cmd裡面執行time.bat | ooo.exe (把time.bat的結果輸出給ooo.exe 然後ooo.exe是一個視窗 一直跑thread接收) 請問一下這兩種方式的程式的實作分別是利用哪種原理 (因為不知道這到底是什麼 所以我不太知道往哪邊去google 想說有沒有人有概念提供一下關鍵字) 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.72.248.50

10/03 17:45, , 1F
time.bat可能改成系統指令 或者是其他程式
10/03 17:45, 1F

10/03 17:49, , 2F
http://goo.gl/dyOJFa 關鍵字應該是 pipe
10/03 17:49, 2F

10/03 17:49, , 3F
第二個方法是從 exe 的 stdin 讀進來
10/03 17:49, 3F
Schottky大抱歉我parent child都編譯起來 但是還是有點不懂他怎麼運作

10/03 18:07, , 4F
感謝大大 我來看一看
10/03 18:07, 4F

10/03 19:42, , 6F
10/03 19:42, 6F

10/03 21:29, , 7F
我比較想知道有沒有辦法在 EditBox 裡模擬 cmd.exe XD
10/03 21:29, 7F

10/03 23:06, , 8F
直接用_popen()應該比較簡單
10/03 23:06, 8F

10/03 23:07, , 9F
msdn.microsoft.com/zh-tw/library/96ayss4b.aspx
10/03 23:07, 9F

10/04 00:49, , 10F
http://codepad.org/jY452foE 輸入用 WriteConsoleInput
10/04 00:49, 10F

10/04 00:50, , 11F
再把真正的 cmd 視窗隱藏,就能簡單模擬。要完全同步像在
10/04 00:50, 11F

10/04 00:51, , 12F
用真的 cmd 一樣,那就很費工了,看 conemu 原始碼就有
10/04 00:51, 12F

10/04 23:59, , 13F
_popen 在視窗設計還是會跳出 console , 看來還是避不開
10/04 23:59, 13F

10/04 23:59, , 14F
console 短暫的出現 ?
10/04 23:59, 14F
※ 編輯: donkeychen 來自: 211.72.248.50 (10/08 10:23)
文章代碼(AID): #1IJJn_oU (C_and_CPP)
文章代碼(AID): #1IJJn_oU (C_and_CPP)