作者shuntau (貓柳田博士)
看板Fortran
標題[問題] 請問如何使用批次檔或script執行由fortran寫成的執行檔?
時間Wed Aug 24 16:20:53 2011
如題
小弟本人目前遇到的問題是這樣的...
假設有個執行檔的檔名為"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
1F:→ blc:command.txt多加個空白行試試。 08/24 19:32
2F:→ shuntau:我試過了...空白行再怎麼加好像都會出現這兩個訊息 08/24 20:50
3F:→ shuntau:除非是我加錯位置了(我是加在最後一行) 08/24 20:51
4F:→ blc:手上沒有windows機器可以試… 08/25 12:23
5F:→ shuntau:我覺得我問題還蠻多的(←抱歉我不是資訊出生的) 08/25 13:18
6F:→ shuntau:首先我現在還是不知道那兩個訊息的意思 08/25 13:19
7F:→ shuntau:再來是file CONIN$,通常應該是給絕對路徑的檔名吧 08/25 13:19
8F:→ shuntau:CONIN$是什麼意思...我還是不知道XD 08/25 13:20
9F:推 terryys:google了一下,那是console input device的意思 08/25 13:49
10F:推 terryys:跟stdin不同的是它只會看console的輸入,所以很可能這個 08/25 13:56
11F:→ terryys:程式不能用redirect XD 08/25 13:56
12F:推 terryys:我剛才用gfortran試了一下,用read(*,*)沒有問題,但是用 08/25 15:20
13F:→ terryys:open CONIN$的方式就不行了,還是要鍵盤輸入才有反應 08/25 15:21
14F:→ terryys:可是沒有出現op那個錯誤 08/25 15:22
15F:→ shuntau:看來很棘手...如果知道鍵盤輸出時是什麼東西的話才有辦法 08/25 22:47
16F:→ shuntau:讓執行檔自動執行? 08/25 22:47
對了...
那個要按ENTER的地方
在單獨執行執行檔時
畫面是顯示這個東西
Fortran Pause - Enter command<CR> or <CR> to continue.
不知道這個是不是也是一個很重要的資訊?
※ 編輯: shuntau 來自: 118.166.132.84 (08/25 22:55)
17F:→ gilocustom:要你"輸入<CR>"就是要你"按enter"。 08/26 02:02
18F:→ shuntau:原來如此... 08/26 11:40
>open CONIN$的方式就不行了,還是要鍵盤輸入才有反應
不過試過一些方式,先把指令打好,然後再複製貼上的方法可行
所以我覺得應該還是有使用鍵盤輸入以外的方法吧...
※ 編輯: shuntau 來自: 118.166.130.158 (08/29 15:16)
19F:推 terryys:我想貼上也算是console input方法之一 08/29 20:29
20F:→ BrianCashman:sendmessage 09/18 03:10