Se você tiver problemas echo ing ! , terá o conjunto EnableDelayedExpansion .
Se EnableDelayedExpansion estiver definido, ! será tratado como um caractere especial e deverá ser ignorado com ^ .
^ deve ser usado duas vezes, pois também é um caractere especial.
Escaping Exclamation marks
When the shell is running in EnableDelayedExpansion mode the ! character is used to denote a variable and so must be escaped (twice) if you wish to treat it as a regular character:
^^!
Sem EnableDelayedExpansion :
@echo off
echo 1q2w!3e
Saída:
1q2w!3e
Com EnableDelayedExpansion e sem escape :
@echo off
Setlocal EnableDelayedExpansion
echo 1q2w!3e
Saída:
1q2w3e
Observe que está faltando ! na saída.
Com EnableDelayedExpansion e escapando :
@echo off
Setlocal EnableDelayedExpansion
echo 1q2w^^!3e
Saída:
1q2w!3e
EnableDelayedExpansion pode ser definido de três maneiras:
- Usando
Setlocal EnableDelayedExpansionem um arquivo em lote - Iniciando
cmdcom a opção/v. - No registro em
HKLMouHKCU
[HKEY_CURRENT_USER\Software\Microsoft\Command Processor] "DelayedExpansion"= (REG_DWORD) 1=enabled 0=disabled (default)
Fontes EnableDelayedExpansion , Escape Characters, Delimiters and Quotes