BAT脚本:运行特定路径下的exe

应用场景

学习过程中需要运行特定路径下的exe,本以为很简单的start C:\ProfileName\xx.exe /S就可以了,但是运行时发现一直报错。特记录一下。
注:/S为静默运行软件的参数。

问题分析

语句一

我的脚本语句是这样的:

start C:\Program Files (x86)\DingDing\uninst.exe /S
pause

pause是为了看DOS窗口的输出信息。
这样运行时DOS窗口会提示找不到路径。这是因为都是DOS窗口把空格前后识别为了不同级别的文件夹,所以必然会报错。在这里插入图片描述


语句二

而后我又尝试了这样的格式:

start "C:\Program Files (x86)\DingDing\uninst.exe" /S

这样的格式可以正常识别路径,但是静默启动参数/S没有生效。也达不到目的。

解决问题

经过多次尝试,发现这样的语句格式可以达到预期效果。

start C:\"Program Files (x86)"\DingDing\uninst.exe /S

错误的原因是DOS命令行会把空格识别为文件路径分级,这样如果某级的文件名中含空格,DOS命令行就会识别空格之前的路径名(例如:C:\Program Files (x86)会被识别为C:\Program),肯定会找不到路径。

总结

DOS命令以空格作为标志来识别路径,因此如果路径中有空格存在,必须将其用英文引号包括起来,或者将整个路径包括起来。


个人能力有限,如有谬误欢迎指正!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值