看板 Fortran 關於我們 聯絡資訊
如題 小弟本人目前遇到的問題是這樣的... 假設有個執行檔的檔名為"abc.exe" 執行之後途中會有一些流程 分別是"輸入enter鍵" →"按1跟2選一個選項(假設按1)" →"輸入檔名1(假設檔名是text1.txt)" →"輸入檔名2(假設檔名是text2.txt)" →"輸入任意數字(假設按5)" →完成 所以我編寫了一個流程碼,如下 --------command.txt start---------- 1 text1.txt text2.txt 5 --------command.txt end------------ 取名叫command.txt(同時也存成command.bat做備份) 目前試了三種方法 法1 將command.txt的內容複製後 執行abc.exe 最後貼上 (有點像連推語法) 這個方法是成功了,不過有點蠢 因為如果一次要做很多事情的話,就要準備很多個很類似的txt檔 而且也無法使用迴圈 所以不考慮 法2 在cmd中,輸入abc.exe < command.txt 但是會出現這樣子的結果 forrtl: severe <24>: end-of-file during read, unit -4, file CONIN$ ------------------------------------------------------------------ 中間一堆東西 ------------------------------------------------------------------ Incrementally linked image--PC correlation disabled. 結果是無法執行 法3 在cmd中,輸入type command.txt | abc.exe 會出現這樣的結果 forrtl: 管道已結束。 forrtl: severe <39>: end-of-file during read, unit -4, file CONIN$ ------------------------------------------------------------------ 中間一堆東西 ------------------------------------------------------------------ Incrementally linked image--PC correlation disabled. 結果是無法執行 會在這邊問是因為後來循線找有關這兩個訊息時,發現是fortran的東西 所以請問各位大德 像這個時候該怎麼編寫script來執行該程式 附注: 該程式是由fortran所編寫,然後個人不知道sourse code 另外本人也沒有Fortran 能使用的只有cmd與matlab而已 先感謝各位大德的回答m(_ _)m -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.166.132.84
blc:command.txt多加個空白行試試。 08/24 19:32
shuntau:我試過了...空白行再怎麼加好像都會出現這兩個訊息 08/24 20:50
shuntau:除非是我加錯位置了(我是加在最後一行) 08/24 20:51
blc:手上沒有windows機器可以試… 08/25 12:23
shuntau:我覺得我問題還蠻多的(←抱歉我不是資訊出生的) 08/25 13:18
shuntau:首先我現在還是不知道那兩個訊息的意思 08/25 13:19
shuntau:再來是file CONIN$,通常應該是給絕對路徑的檔名吧 08/25 13:19
shuntau:CONIN$是什麼意思...我還是不知道XD 08/25 13:20
terryys:google了一下,那是console input device的意思 08/25 13:49
terryys:跟stdin不同的是它只會看console的輸入,所以很可能這個 08/25 13:56
terryys:程式不能用redirect XD 08/25 13:56
terryys:我剛才用gfortran試了一下,用read(*,*)沒有問題,但是用 08/25 15:20
terryys:open CONIN$的方式就不行了,還是要鍵盤輸入才有反應 08/25 15:21
terryys:可是沒有出現op那個錯誤 08/25 15:22
shuntau:看來很棘手...如果知道鍵盤輸出時是什麼東西的話才有辦法 08/25 22:47
shuntau:讓執行檔自動執行? 08/25 22:47
對了... 那個要按ENTER的地方 在單獨執行執行檔時 畫面是顯示這個東西 Fortran Pause - Enter command<CR> or <CR> to continue. 不知道這個是不是也是一個很重要的資訊? ※ 編輯: shuntau 來自: 118.166.132.84 (08/25 22:55)
gilocustom:要你"輸入<CR>"就是要你"按enter"。 08/26 02:02
shuntau:原來如此... 08/26 11:40
>open CONIN$的方式就不行了,還是要鍵盤輸入才有反應 不過試過一些方式,先把指令打好,然後再複製貼上的方法可行 所以我覺得應該還是有使用鍵盤輸入以外的方法吧... ※ 編輯: shuntau 來自: 118.166.130.158 (08/29 15:16)
terryys:我想貼上也算是console input方法之一 08/29 20:29
BrianCashman:sendmessage 09/18 03:10