学习过程中需要运行特定路径下的exe,本以为很简单的start C:ProfileNamexx.exe /S就可以了,但是运行时发现一直报错。特记录一下。 注:/S为静默运行软件的参数。
问题分析 语句一我的脚本语句是这样的:
start C:Program Files (x86)DingDinguninst.exe /Spause加pause是为了看DOS窗口的输出信息。 这样运行时DOS窗口会提示找不到路径。这是因为都是DOS窗口把空格前后识别为了不同级别的文件夹,所以必然会报错。
语句二而后我又尝试了这样的格式:
start "C:Program Files (x86)DingDinguninst.exe" /S这样的格式可以正常识别路径,但是静默启动参数/S没有生效。也达不到目的。
解决问题经过多次尝试,发现这样的语句格式可以达到预期效果。
start C:"Program Files (x86)"DingDinguninst.exe /S错误的原因是DOS命令行会把空格识别为文件路径分级,这样如果某级的文件名中含空格,DOS命令行就会识别空格之前的路径名(例如:C:Program Files (x86)会被识别为C:Program),肯定会找不到路径。
总结DOS命令以空格作为标志来识别路径,因此如果路径中有空格存在,必须将其用英文引号包括起来,或者将整个路径包括起来。
个人能力有限,如有谬误欢迎指正!