Shell Bat:Set命令在括号内不起作用
我遇到了蝙蝠命令的这种奇怪行为:Shell Bat:Set命令在括号内不起作用,shell,batch-file,cmd,command,Shell,Batch File,Cmd,Command,我遇到了蝙蝠命令的这种奇怪行为: 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:\ProgramFiles(
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:\ProgramFiles(x86)\NVIDIA Corporation\PhysX\Common
是我的Path环境变量的一部分
这里使用()有什么问题?如果
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")
将行放在括号内时,必须将路径分配括在引号中:
(设置“path=%path%;C:\Myfolder”)
;否则,%path%
的圆括号将关闭行中的圆括号,因此下一部分将标记为错误。谢谢Aacini。。成功了。请把它作为答案贴出来。我会记下来的。。