bat文件执行taskkill终止程序正常 执行start启动却提示找不到文件
问题原因
taskkill命令执行成功的原因:该命令使用/im参数匹配的是运行中进程的映像名,不需要读取文件路径,只要程序处于运行状态就能匹配到进程执行终止操作,和路径格式无关。- 启动命令执行失败的原因:
- 你的程序路径中包含空格(
My Actual Work字段),CMD解析命令时默认将空格作为参数分隔符,会把空格前的路径片段识别为启动程序,后续内容识别为参数,导致找不到对应程序。 start命令存在特殊解析逻辑:它的第一个带双引号的参数会被默认识别为新启动窗口的标题,而非要启动的程序路径。
- 你的程序路径中包含空格(
解决方案
修改bat脚本第三行的start命令,先添加一对空双引号作为占位的窗口标题,再用双引号包裹完整的程序路径即可,修改后的完整脚本如下:
taskkill /f /im LearnBatV1.0.0.exe timeout /t 1 start "" "K:\POST\Govind\My Actual Work\LearnBat\LearnBatV1.0.0.exe" exit
如果需要验证路径正确性,也可以先切换到对应目录再执行启动命令,效果一致:
taskkill /f /im LearnBatV1.0.0.exe timeout /t 1 cd /d "K:\POST\Govind\My Actual Work\LearnBat\" start LearnBatV1.0.0.exe exit
内容的提问来源于stack exchange,提问作者Govind
相关产品推荐
相关产品推荐

