114514 发表于 2023-8-2 07:07:41

有关Fortran中System函数的问题

我有一个main.exe的文件,它执行的目的是跳转到test这个文件夹下执行a.exe这个文件,可我运行main.exe这个文件时,报了错,错误信息是这样的:PS C:\Users\yeha\Desktop\新建文件夹 (2)> .\main
'.\a' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
end2

解决了好久都没解决好
main.exe之前是这样的:
program Main

    if ( System(Trim('cd test')) == 0 ) then

      if ( System(Trim('.\a')) == 0 ) then

            print *,'OK'

      else

            print *,'end2'
            stop

      end if;

    else

      print *,'end1'
      stop

    end if;


endcommand_abo(我是在test的父目录下的,test文件夹下也有a.exe这个文件)



data:image/png;base64,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
求各位大佬帮我解决这个问题,谢谢了
我使用的编辑器是Vscode,编译器是gfortran,操作系统是Win10

li913 发表于 2023-8-2 14:15:13

1、如果把 a.exe需要的输入输出文件置于工作目录(main.exe所在位置),则可以直接调用 call execute_command_line( 'test/a.exe')。 execute_commond_line 是标准用法,和 system等价。
2、如果a.exe需要的输入输出文件在test中,则比较麻烦。需要先切换工作目录到test (CHANGEDIRQQ函数),执行a.exe,切换回main.exe的目录

114514 发表于 2023-8-2 19:47:39

li913 发表于 2023-8-2 14:15
1、如果把 a.exe需要的输入输出文件置于工作目录(main.exe所在位置),则可以直接调用 call execute_command ...

谢谢,问题已经解决了,感谢大佬的帮助
页: [1]
查看完整版本: 有关Fortran中System函数的问题