一个爆炸字符在Windows bat文件中意味着什么?

时间:2015-08-28 02:15:13

标签: windows batch-file

我试图纠正一个使用爆炸字符的bat文件,我希望在某种形式的引用:

之类的东西
set some_var=!some_var:"=\"!

然后再

some command !some_var!

看起来第一个是提示输入时禁用了echo,比如提示输入密码,第二个引用变量。通常,bat文件使用百分比字符,例如

%some_var%

任何人都知道蝙蝠角色在蝙蝠文件中究竟做了什么?试着调试这个东西,不要猜测。

1 个答案:

答案 0 :(得分:6)

来自cmd /?

  

如果启用了延迟环境变量扩展,那么   感叹号可以用来代替一个值   执行时的环境变量。

cmd帮助在其他地方描述了启用延迟环境变量扩展的各种方法。)

来自set /?

  

延迟环境变量扩展允许您使用不同的   用于扩展环境变量的字符(感叹号)   执行时间。

  

环境变量替换增强如下:

%PATH:str1=str2%
     

会扩展PATH环境变量,替换每次出现   “str1”的扩展结果中的“str1”。

因此,您set some_var=!some_var:"=\"!的案例正在更新some_var,以"替换\"个字符。