Board logo

标题: [系统相关] [已解决]批处理怎么执行带多个参数的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程序路径和参数,用引号将它们括起来:
  1. START "" "C:\Program Files\MyApp\MyApp.exe" /param1 value1 /param2 value2
复制代码
2.在引号内部,如果需要使用空格分隔路径和参数,需要在空格前加上“^”,实现转义:
  1. START "" "C:\Program^ Files\MyApp\MyApp.exe" /param1 value1 /param2 value2
复制代码
3.若需要传递多个参数,可以在EXE程序路径之后添加它们,用空格分隔:
  1. 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


    我试了
  1. start "" "F:\p\ComputePSNR.exe" 0.yuv 2.yuv "30 0"
复制代码
执行不成功,
  1. start "" F:\p\ComputePSNR.exe "0.yuv" 2.yuv "30 0"
复制代码
成功,把执行程序的引号去掉反而成功
现在问题是如果应用程序有空格怎么办.谢谢解答
作者: Batcher    时间: 2023-4-13 11:29

回复 5# joanneinwork


试试4楼链接里面的方法
  1. 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://bbs.bathome.net/) Powered by Discuz! 7.2