两边加引号并没有错,而且是推荐的写法,路径中存在空格时就必须加双引号。例如:
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编辑过]