标题: [系统相关] [已解决]批处理怎么执行带多个参数的exe程序?进一步求助 [打印本页]
作者: joanneinwork 时间: 2023-4-10 12:44 标题: [已解决]批处理怎么执行带多个参数的exe程序?进一步求助
本帖最后由 joanneinwork 于 2023-5-7 18:46 编辑
http://www.bathome.net/viewthrea ... mp;page=1#pid267287
问题同此贴, 原贴二楼的解决方案也有效. 但我非常困惑,但如果执行程序的路径有空格怎么办? 如qq o.bat??
求助!
作者: holley 时间: 2023-4-10 17:08
没搞懂意思,执行程序的路径不是在前一个“启动目录”引号里面吗?
作者: yakeyun 时间: 2023-4-11 00:02
回复 2# holley
1.在批处理脚本中使用START命令,后面紧跟待运行的EXE程序路径和参数,用引号将它们括起来:- START "" "C:\Program Files\MyApp\MyApp.exe" /param1 value1 /param2 value2
复制代码
2.在引号内部,如果需要使用空格分隔路径和参数,需要在空格前加上“^”,实现转义:- START "" "C:\Program^ Files\MyApp\MyApp.exe" /param1 value1 /param2 value2
复制代码
3.若需要传递多个参数,可以在EXE程序路径之后添加它们,用空格分隔:- START "" "C:\Program^ Files\MyApp\MyApp.exe" /param1 value1 /param2 value2 "string parameter"
复制代码
作者: Batcher 时间: 2023-4-13 08:15
回复 3# yakeyun
空格多的话,转义会比较麻烦,可以使用另外一种方法:
http://bbs.bathome.net/thread-65146-1-1.html#pid264491
作者: joanneinwork 时间: 2023-4-13 10:49
回复 3# yakeyun
我试了- start "" "F:\p\ComputePSNR.exe" 0.yuv 2.yuv "30 0"
复制代码
执行不成功,
但- start "" F:\p\ComputePSNR.exe "0.yuv" 2.yuv "30 0"
复制代码
成功,把执行程序的引号去掉反而成功
现在问题是如果应用程序有空格怎么办.谢谢解答
作者: Batcher 时间: 2023-4-13 11:29
回复 5# joanneinwork
试试4楼链接里面的方法- start /b cmd /c ,"F:\p\ComputePSNR.exe" "0.yuv" 2.yuv "30 0"
复制代码
作者: aloha20200628 时间: 2023-4-13 18:17
本帖最后由 aloha20200628 于 2023-4-13 19:28 编辑
仅供参考》批处理脚本中采用start,通常是为解决两个问题,一是能用并行方式启运一个可执行文件,二是能用无窗口方式启运一个批处理脚本。
第一者用法的最简句式如:
start "窗口标题" 可执行文件的路径文件名 参数
示例如 start "" c:\abc\xyz.exe 123 或 start "" c:\abc\xyz.vbs 123
如果可执行文件的路径文件名和参数均含有空格,则各自须用双引号包裹
示例如 start "" "c:\a c\x z.exe" "1 3" 或 start "" "c:\a c\x z.vbs" "1 3"
第二者的用法则须注意,因涉及一个据说已被公认的bug,就是批处理脚本路径文件名及其参数两者不能同时含有空格
示例如 start "" /d "c:\a c" /b "x z.bat" 123 或 start "" /b c:\abc\xyz.cmd "1 3" 均可
但如果都有空格,则须用call搭桥
示例如 start "" /b call "c:\a c\x z.bat" "1 3" 或 start "" /b call "c:\a c\x z.cmd" "1 3"
作者: joanneinwork 时间: 2023-4-15 19:44
回复 7# aloha20200628
应该是您说的二类方法,存在的bug! 谢谢给出解决方案!!!!
作者: joanneinwork 时间: 2023-4-15 19:44
回复 6# Batcher
这个方法就是不行,必须得把应该程序的双引号去掉才能运行
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |