| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 599 人关注过本帖
标题:求WScript.Shell运行外部程序写法
只看楼主 加入收藏
weiyisc
Rank: 2
等 级:论坛游民
帖 子:103
专家分:14
注 册:2009-5-17
结帖率:83.33%
收藏
已结贴  问题点数:20 回复次数:8 
求WScript.Shell运行外部程序写法
执行文件路径含参数:D:\RMClient\RM.StartWebBrowser.exe his_param_mode=3 url=http://10.10.100.3:8888 rmkj_userno=1000 his_param_dept=37 his_param_ward=37 his_param_patno=2301275 his_param_patid= his_param_patname= his_param_inpno= his_param_pattype= his_param_hospital= his_param_idcard= his_param_barcode= inpdate=2023-05-10 outdate=2023-05-10

下面写法报错:
ox=CreateObject("WScript.Shell")
ox.Run(["&q"],1,0)
RELEASE ox

图片附件: 游客没有浏览图片的权限,请 登录注册


求教。。。。
搜索更多相关主题的帖子: 报错 Shell WScript 运行 外部 
2023-07-03 14:36
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1089
专家分:2682
注 册:2015-12-30
收藏
得分:0 
MESSAGEBOX( "&q")    && asdasd
MESSAGEBOX( ["&q"])    && "asdasd"
2023-07-03 14:51
weiyisc
Rank: 2
等 级:论坛游民
帖 子:103
专家分:14
注 册:2009-5-17
收藏
得分:0 
以下是引用laowan001在2023-7-3 14:51:20的发言:

MESSAGEBOX( "&q")    && asdasd
MESSAGEBOX( ["&q"])    && "asdasd"


版主,什么意思?没有看懂。。。。
2023-07-03 14:57
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:707
专家分:2833
注 册:2018-3-13
收藏
得分:0 
看上去 q 很长,应该超出宏替换允许的长度了,况且也不需要用宏替换
两端是否需要加引号?一定要加的话也该是这样:
ox.Run(["]+q+["],1,0)

[此贴子已经被作者于2023-7-3 15:12编辑过]


这家伙很懒,啥也没留下
2023-07-03 15:10
weiyisc
Rank: 2
等 级:论坛游民
帖 子:103
专家分:14
注 册:2009-5-17
收藏
得分:0 
回复 4楼 csyx
是有点长。我在试试
2023-07-03 15:26
weiyisc
Rank: 2
等 级:论坛游民
帖 子:103
专家分:14
注 册:2009-5-17
收藏
得分:0 
回复 4楼 csyx
是有点长。我在试试
2023-07-03 15:45
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1089
专家分:2682
注 册:2015-12-30
收藏
得分:0 
以下是引用weiyisc在2023-7-3 14:57:00的发言:



版主,什么意思?没有看懂。。。。


MESSAGEBOX( "&q")    && asdasd
MESSAGEBOX( ["&q"])    && "asdasd"
两种写法的结果是不一样的,上面两句是运行后的结果
你出错的写法是第2种,相当于 ox.RUN("asdasd",1,0),就是你的q值两边加上了双引号,可以试试下面的写法
 ox.RUN(q,1,0)
2023-07-03 16:59
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:707
专家分:2833
注 册:2018-3-13
收藏
得分:20 
两边加引号并没有错,而且是推荐的写法,路径中存在空格时就必须加双引号。例如:
vfp = home() + 'vfp9.exe'   && 默认安装路径 C:\Program Files (x86)\Microsoft Visual FoxPro 9\ 是带空格的
ox.run(vfp)     && 出错
ox.run(["] + vfp + ["])   && 正常启动

楼主的错误不是引号的原因,而是 "&q" 展开后的字符串超出了 vfp 字符串【字面长度】不能大于 255 的限制。
1. 如果是 ox.run("&q"),则 len(q) 应该 <= 255
2. 如果是 ox.run(["&q"]),则 len(q) 应该 <= 255 - 2
所以这里不能用 &

楼主要执行的 exe 路径没有空格,因此,不需要带参数的话
q = 'D:\RMClient\RM.StartWebBrowser.exe'
ox.run(q)
或者
ox.run(["] + q + ["])
都可以正常运行

但楼主的需求是必须带参数,因此双引号就是必须的,语法如下:
exe = 'D:\RMClient\RM.StartWebBrowser.exe'
arg = 'his_param_mode=3 url=http://10.10.100.3:8888 ' + .......
ox.run(["] + exe + [" ] + arg)    && 注意第二个双引号后有一空格

或者干脆简单点,q 赋值时就加上双引号
q = '"D:\RMClient\RM.StartWebBrowser.exe" his_param_mode=3 ' + ....
ox.run(q)


[此贴子已经被作者于2023-7-3 18:17编辑过]


这家伙很懒,啥也没留下
2023-07-03 18:05
weiyisc
Rank: 2
等 级:论坛游民
帖 子:103
专家分:14
注 册:2009-5-17
收藏
得分:0 
回复 8楼 csyx
感谢感谢!
2023-07-05 15:31
快速回复:求WScript.Shell运行外部程序写法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022876 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved