批处理在带括号路径中运行的问题

因为项目安装在win7 64的环境下时无法运行,花了点功夫研究了一下。

原本以为是因为64位环境的问题,后来据同事讲将 Program files(x86[b])[/b]改成 Program file(x86就好了,觉得还是bat文件写错了。 于是查看代码,看到如下语句,

if not %ERRORLEVEL% == 0 (
echo bla...bla... %~dp0
)

其中%~dp0表示当前路径,所以程序在执行的时候就成了,

if not %ERRORLEVEL% == 0 [b]([/b]
echo bla...bla... C:\Program files(x86[b])[/b]
)

就出现了括号匹配的错误。

修改方法可以用双引号,如“%~dp0”

以后写bat的时候还真得注意了。

    推荐阅读