[問題] 把執行檔拿到matlab執行 已回收
雖然這個問題不太算是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
08/31 10:17, 1F
→
08/31 11:56, , 2F
08/31 11:56, 2F
→
09/02 15:07, , 3F
09/02 15:07, 3F
→
09/02 15:08, , 4F
09/02 15:08, 4F
→
09/02 18:33, , 5F
09/02 18:33, 5F
→
09/02 18:34, , 6F
09/02 18:34, 6F