作者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