首页 > 解决方案 > 使用 EnableDelayedExpansion 在命令行脚本中显示感叹号 (!)

问题描述

此批处理脚本的输出Hello!与预期的一样:

@echo off
echo Hello!

但是,启用延迟扩展后,现在的输出为Hello

@echo off
setlocal EnableDelayedExpansion
echo Hello!

一个技巧是在 :endlocal之前插入echo

@echo off
setlocal EnableDelayedExpansion
...
endlocal
echo Hello!
setlocal EnableDelayedExpansion

然而,这很乏味。根据这个 Microsoft 参考,一些字符,如百分比 (%) 和插入符号 (^) 可用于转义(并因此打印)字符,如%,|>.

感叹号(!)是否有任何转义字符而不使用endlocal技巧?

标签: windowsbatch-file

解决方案


尝试使用双插入符号:

@echo off

setlocal enableDelayedExpansion

echo ^^!

推荐阅读