[問題] 把執行檔拿到matlab執行 已回收

看板MATLAB作者 (貓柳田博士)時間12年前 (2011/08/31 02:52), 編輯推噓1(105)
留言6則, 3人參與, 最新討論串1/1
雖然這個問題不太算是matlab的問題 反而比較像是編寫cmd批次檔或是fortran的問題 但是因為最終想在matlab中執行,所以還是在這邊問一下了 (其實這問題有在fortran板問過) 假設有個執行檔叫做abc.exe 執行abc.exe後 會依序要求幾個步驟 1.按enter 2.按1 3.輸入文字檔(假設為cde.txt) 4.輸入文字檔(假設為def.txt) 5.按5 所以依照這個概念,我編寫了一個auto.txt的script ------auto.txt start------- 1 cde.txt def.txt 5 ------auto.txt finish------ 然後我個人做了3種測試 1.把auto.txt的內容複製起來 然後在command window輸入dos('abc.exe')或system('abc.exe') 最後再把內容貼在command window上 結果是可行的 不過因為複製貼上算是手動去控制 與我想全自動化的理念不合 所以不考慮此法 2.輸入dos('abc.exe<auto.txt') 結果如下 forrtl: severe (24): end-of-file during read, unit -4, file CONIN$ Image PC Routine Line Source abc.exe 00414939 Unknown Unknown Unknown abc.exe 00414733 Unknown Unknown Unknown abc.exe 004138C4 Unknown Unknown Unknown abc.exe 00413B3E Unknown Unknown Unknown abc.exe 0040D17E Unknown Unknown Unknown abc.exe 00401444 Unknown Unknown Unknown abc.exe 0043E8B9 Unknown Unknown Unknown abc.exe 00431CE4 Unknown Unknown Unknown kernel32.dll 7C817077 Unknown Unknown Unknown Incrementally linked image--PC correlation disabled. ans = -1.0737e+009 結果是不可行 3.輸入dos('type auto.txt|abc.txt') 結果如下 forrtl: 管道已結束。 forrtl: severe (39): error during read, unit -4, file CONIN$ Image PC Routine Line Source abc.exe 00414939 Unknown Unknown Unknown abc.exe 00414733 Unknown Unknown Unknown abc.exe 004138C4 Unknown Unknown Unknown abc.exe 00413B3E Unknown Unknown Unknown abc.exe 0040D17E Unknown Unknown Unknown abc.exe 00401444 Unknown Unknown Unknown abc.exe 0043E8B9 Unknown Unknown Unknown abc.exe 00431CE4 Unknown Unknown Unknown kernel32.dll 7C817077 Unknown Unknown Unknown Incrementally linked image--PC correlation disabled. ans = -1.0737e+009 跟2一樣,仍然不可行 請問要怎做作才能執行呢? 附註: 1.本人另外又試了在matlab上的m檔案寫上script 結論是沒有辦法 因為開啟該執行檔後,主導權會被那個執行檔拉過去 所以在該執行檔執行完之前,m檔案dos('abc.exe')底下的code是不會跑的 直到執行完才會讀接下來的code 2.在fortran板上問過,CONIN$那個是console input device的意思 是說要鍵盤輸入才有反應 但是方法1中,將文件內容複製貼上也可行 所以表示並非鍵盤輸入才有反應 或許還有其他的輸入方式 3.讀取執行檔之後還有其他工作 本人想在matlab上完成,所以希望說只使用matlab完成工作 先感謝各位大德的回答m(_ _)m -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.166.130.158

08/31 10:17, , 1F
你有abc.exe的源碼嗎
08/31 10:17, 1F

08/31 11:56, , 2F
本人有執行檔,但是不知道裡面的SOURSE CODE喔
08/31 11:56, 2F

09/02 15:07, , 3F
把參數用命令列傳進去吧
09/02 15:07, 3F

09/02 15:08, , 4F
在MATLAB中就用system('abc.exe 1 file1 file2 3');
09/02 15:08, 4F

09/02 18:33, , 5F
感謝四樓的回答,不過測試結果是沒有成功
09/02 18:33, 5F

09/02 18:34, , 6F
輸入後馬上又被abc.exe搶走主導權了
09/02 18:34, 6F
文章代碼(AID): #1ENJ5aQj (MATLAB)