转义Windows批处理中的感叹号

启用了延迟扩展后,感叹号会补当作%一样的特殊字符处理,例如:!var!,当需要将感叹号用作普通字符时,需要作转义处理。

例如:

setlocal ENABLEDELAYEDEXPANSION
......
%DECOMPRESS% x -o%BUILD_PATH% -x^^!!SRC_STEM!\doc %SRC_PATHNAME%

这里的^^!会被处理为!,少一个^不行。

如果要在变量中使用感叹号,需要再加一个^,并且需要加双引号,例如:

setlocal ENABLEDELAYEDEXPANSION
set x="^^^!"
echo %x%

set y="^!"
echo !y!

echo ^^!
echo ^^^!
echo "^!"

除以上正常的用法以外的,均是错误的。

你可能感兴趣的:(windows)