今天执行一个bat的时候遇到一个报错,内容:
C:\Windows\system32>D:\test(测试).bat
'D:\test' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
可以看到我运行的bat名字是test(测试).bat
,但是报错内容是'D:\test
’,名字不对,根据经验判断这个原因出自括号
。
这个问题的根本原因在于Windows命令行解析路径时,会将空格
和某些特殊字符(如括号)
视为分隔符。因此,当路径中包含这些字符且未用引号括起来时,命令行会将其错误地解释为多个独立的参数。
解决办法:
使用引号括起路径:
当批处理文件的路径中包含空格或特殊字符时,务必使用双引号将整个路径括起来
这样可以确保命令行正确解析整个路径为一个参数。
例如:
C:\Windows\system32>"D:\test(测试).bat"
测试开始
测试结束
请按任意键继续. . .
通过双引号后成功运行,如果bat的名字带有特殊字符,建议使用双引号包裹起来运行。