我试图纠正一个使用爆炸字符的bat文件,我希望在某种形式的引用:
之类的东西set some_var=!some_var:"=\"!
然后再
some command !some_var!
看起来第一个是提示输入时禁用了echo,比如提示输入密码,第二个引用变量。通常,bat文件使用百分比字符,例如
%some_var%
任何人都知道蝙蝠角色在蝙蝠文件中究竟做了什么?试着调试这个东西,不要猜测。
答案 0 :(得分:6)
来自cmd /?
:
如果启用了延迟环境变量扩展,那么 感叹号可以用来代替一个值 执行时的环境变量。
(cmd
帮助在其他地方描述了启用延迟环境变量扩展的各种方法。)
来自set /?
:
延迟环境变量扩展允许您使用不同的 用于扩展环境变量的字符(感叹号) 执行时间。
和
环境变量替换增强如下:
%PATH:str1=str2%
会扩展PATH环境变量,替换每次出现 “str1”的扩展结果中的“str1”。
因此,您set some_var=!some_var:"=\"!
的案例正在更新some_var
,以"
替换\"
个字符。