Я пытаюсь что-то вроде:
set pwd = abc&123
echo password %pwd%
Я получаю результат как ...
'123' is not recognized as an internal or external command, operable program or batch file.
password abc
Система такая или есть спасение для таких персонажей?
windows
command-line
batch
deostroll
источник
источник
Ответы:
Что вам нужно сделать, это заключить пароль в двойные кавычки, например, так:
Дайте мне знать, как это происходит.
источник
set "pwd=abc&123"
Я обнаружил, что это лучше всего работает с комбинацией ответа Мартино и ответа mastashake57.
По-прежнему не удается, и
Добавляет к нему кавычки (вы не можете удалить кавычки с помощью
for
цикла или манипуляции со строками, потому что он снова потерпит неудачу, благодаря амперсанду), что не так уж и здорово.Однако,
Работает отлично.
Надеюсь, это поможет.
источник
pwd
вabc^&123
. В большинстве случаев это, вероятно, именно то, что вам нужно сделать, но это может вас поймать, если вы не знаете, что происходит./?
предоставляется только сводная, а не исчерпывающая документация.Из справочного файла справки командной строки:
Похоже, что вводить весь пароль в кавычки было бы проще, чем экранировать отдельные символы, если в нем более двух символов, требующих обработки.
источник
Что вам действительно нужно:
Или:
Объяснение:
Поскольку
&
это специальный символ, вы должны избегать его^
, в результате чего^&
.Запуск
set pwd=abc^&123
установит переменную в значениеabc&123
. После этого, если вы должны были бежатьecho %pwd%
, вы эффективно работаетеecho abc&123
.Тем
echo abc&123
не менее , не работает, как вы ожидаете, потому что&
это специальный символ. Вы можете избежать этого, добавив кавычки:echo "abc&123"
но ваш вывод также будет содержать кавычки. Другими словами, использование кавычек не совсем правильное решение.Что вам нужно, это экранировать
&
символ при запускеecho
команды:Таким образом, переменная должна содержать значение
abc^&123
. Чтобы установить значение переменнойabc^&123
, вам нужно будет экранировать специальные символы^
и&
, в результате:источник