批处理文件自动输入fortran程序

时间:2017-04-29 16:23:38

标签: batch-file cmd fortran

我有一个简单的编译Fortran程序,如下所示:

program main
    integer :: i1,i2,i3

    print *,"Enter input 1"
    read  *, i1
    print *,"Enter input 1"
    read  *, i2
    print *,"Enter input 1"
    read  *, i3

    print *, "you have entered", i1, i2, i3
end program main

我想编写一个批处理文件,该文件将自动输入三个值,然后按住屏幕输出,但也有机会让用户输入其他命令。这是我到目前为止在批处理文件中提出的:

D:
cd D:\TEMP\TEST\TEST\Debug
(echo 1 
echo 2 
echo 3) | test
pause>nul

不幸的是,这会输出以下内容: enter image description here

这接近我正在寻找的但它有一些问题:

  • 将echo命令输出到我不想发生的屏幕
  • 运行批处理文件结束后按任意键将退出命令窗口。我希望为用户提供继续输入命令的机会。

请告诉我这个简单问题的清洁解决方案。

1 个答案:

答案 0 :(得分:0)

如果Fortran程序将从stdin读取,为什么不创建一个包含输入值的临时文件并将其重定向到Fortran程序?

CD /D D:\TEMP\TEST\TEST\Debug
SET "TEMP_FILE=%TEMP%\fortran_program_%RANDOM%.tmp"
IF EXIST "%TEMP_FILE%" (DEL "%TEMP_FILE%")
ECHO>>"%TEMP_FILE%" 1
ECHO>>"%TEMP_FILE%" 2
ECHO>>"%TEMP_FILE%" 3
test <"%TEMP_FILE%"
IF EXIST "%TEMP_FILE%" (DEL "%TEMP_FILE%")
pause>nul