启用了延迟扩展后,感叹号会补当作%一样的特殊字符处理,例如:!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 "^!"
除以上正常的用法以外的,均是错误的。