Fortran Coder

查看: 24131|回复: 2
打印 上一主题 下一主题

[求助] system及systemqq的用法

[复制链接]

137

帖子

37

主题

0

精华

宗师

F 币
1626 元
贡献
825 点
跳转到指定楼层
楼主
发表于 2018-9-26 09:04:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 andy8496 于 2018-10-6 10:41 编辑

VS2012+IVF2015
因为要在Fortran中用到批处理的功能,所以考虑用system及systemqq将批处理代码写到Fortran中。以下批处理代码可以获取快捷方式  “D:\LL\桌面\搜狗高速浏览器.lnk”  的目标,并写入文本 t.txt:

[Shell] 纯文本查看 复制代码
1for /f "skip=3 delims=" %%a in ('find ":\" "D:\LL\桌面\搜狗高速浏览器.lnk" ') do echo %%a > t.txt


在 t.txt中获取的目标为: C:\Program Files (x86)\sougou\SogouExplorer\SogouExplorer.exe

但是,当时将这一句写入Fortran中的时候,一直不能成功:


[Fortran] 纯文本查看 复制代码
1program main
2USE IFPORT
3implicit none
4integer :: i
5 ! i=system('for /f "skip=3 delims=" %%a in ('find ":\" "D:\LL\桌面\搜狗高速浏览器.lnk" ') do echo %%a > t.txt') ! 编译失败
6 ! i=system('for /f ""skip=3 delims="" %%a in ('find "":\"" ""D:\LL\桌面\搜狗高速浏览器.lnk"" ') do echo %%a > t.txt') ! 运行失败
7  i=system("for /f ""skip=3 delims="" %%a in ('find "":\"" ""D:\LL\桌面\搜狗高速浏览器.lnk"" ') do echo %%a > t.txt") ! 运行失败
8  stop
9end program


另外,system的参数能否包含字符串?比如这样可否:

[Fortran] 纯文本查看 复制代码
01program main
02USE IFPORT
03implicit none
04integer :: i
05character :: s_lnk*256
06 
07s_lnk = "D:\LL\桌面\搜狗高速浏览器.lnk"
08  i=system("for /f ""skip=3 delims="" %%a in ('find "":\"" """// trim(s_lnk)  //""" ') do echo %%a > t.txt")
09 write(*,*) "for /f ""skip=3 delims="" %%a in ('find "":\"" """// trim(s_lnk)  //""" ') do echo %%a > t.txt"
10 
11 ! 此时write得到的字符串与写在.bat文件中能正常执行的代码一模一样!编译也没有问题,但是在system函数中就是不能运行。郁闷啊!!!
12 
13  stop
14end program


还请大家不吝赐教!





分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

63

帖子

9

主题

0

精华

专家

超凡脱俗

F 币
474 元
贡献
237 点
沙发
发表于 2018-9-26 09:21:15 | 只看该作者
你这么写,编译都过不去吧,需要字符串拼接
天下英雄出我辈,一入江湖岁月催。

鸿图霸业谈笑间,不胜人生一场醉。

137

帖子

37

主题

0

精华

宗师

F 币
1626 元
贡献
825 点
板凳
 楼主| 发表于 2018-9-26 09:34:21 | 只看该作者
Jackdaw 发表于 2018-9-26 09:21
你这么写,编译都过不去吧,需要字符串拼接

这俩函数,对于没有引号的常量字符串表示的命令,确实能够正常执行。
对于常量字符串中引号,我理解是两个引号可以表示一个引号。
所以,我认为带有变量才需要拼接。

可能理解的不对,因为一直不能成功。如何修改,还请明示!
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2025-4-8 21:49

Powered by Discuz! X3.4

© 2013-2025 Comsenz Inc.

快速回复 返回顶部 返回列表