Когда я печатаю:
set hi=Hello^&World! echo %hi%
it print Привет и скажи мне, что Мир - это не команда
Я хочу, чтобы он печатал Hello & World!
Как это сделать?
Это работает для меня:
set "hi=Hello^&World!" echo %hi%
Выходы
Hello&World!
Единственный безопасный способ отобразить содержимое переменной - использовать отсроченное расширение здесь. Если используется процентное расширение, оно зависит от содержимого в случае сбоя.
set "var1=Hello ^& World" set "var2=Hello & World" setlocal EnableDelayedExpansion echo !var1! echo !var2! echo %var1% echo %var2% -- fails
Отсроченное расширение более полезно, так как не интерпретирует никаких специальных символов. Больше информации на SO: Как работает парсер
только
echo Hello ^& World!
работает
EDIT поэтому проблема не в команде ECHO, а в присвоении переменной, как правильно заметил @Bali.
ECHO