Выход этого пакетного сценария равен 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
?