我遇到过这种蝙蝠命令的奇怪行为:
Set path=%path%;C:\Myfolder;
完美无缺。但是,当我把它放在括号内时,它表现得很奇怪:
if defined WINDIR (set path=%path%;C:\Myfolder)
\NVIDIA was unexpected at this time.
甚至
(set path=%path%;C:\Myfolder)
\NVIDIA was unexpected at this time.
请注意
C:\ Program Files(x86)\ NVIDIA Corporation \ PhysX \ Common
是我的Path环境变量的一部分。
在这里使用()有什么问题?
答案 0 :(得分:0)
如果set
命令放在括号内,则%path%
扩展会放置一个右括号来关闭原始数据;那就是:
set path=C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common
(set path=%path%;C:\Myfolder)
在第二行展开%path%
变量时,结果如下:
(set path=C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Myfolder)
您可能会看到(x86)
部分中的右侧paren关闭了原来的左侧paren,因此该行中的下一部分是\NVIDIA Corporation\PhysX\Common;C:\Myfolder)
,这是导致错误的原因。
要避免此错误,请在set
命令中用引号括起来:
(set "path=%path%;C:\Myfolder")