2017-01-26 126 views
0

不工作设置命令我遇到蝙蝠命令的这种奇怪的行为:蝙蝠:括号内

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公司\ PhysX物理\通用

是我的Path环境变量的一部分。

这里使用()有什么问题?

+7

当行被放置_inside_括号,你必须用引号括起来,路径分配:'(SET“路径=%路径%; C:\ MyFolder文件“)';否则'%path%'的括号会关闭行中的括号,因此下一部分会标记错误。 – Aacini

+0

谢谢Aacini ..它工作。请发布它作为答案。我会标记它.. –

回答

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)部分右括号关闭原来的左括号,所以该行中的下一部分是\NVIDIA Corporation\PhysX\Common;C:\Myfolder),这是错误的原因。

为了避免这种错误,只是在引号中set命令值:

(set "path=%path%;C:\Myfolder")