Пакетное выполнение сценариев: передача пароля аргумента, содержащего символ вставки
Итак, у меня есть следующий пакетный скрипт (test.bat):
@echo off
set usernameArgument=%1
set passwordArgument=%2
echo Password Argument: %passwordArgument%
В CMD, если я вызываю это, используя аргумент пароля, который имеет символ вставки "^", символ вставки удаляется:
C:\> test.bat UserName Pass^Word
ВЫХОД: Password Argument: PassWord
Есть ли способ получить значение поля passwordArgument (%2) с помощью символа вставки,
ПРИМЕЧАНИЕ: у меня есть ограничение, так как это пароль, который я не хочу передавать в нечто вроде этого Pass^^^^Word. Я хотел бы найти решение, которое позволит мне просто передать Pass ^ Word в качестве аргумента.
1 ответ
^
является экранированным символом в cmd. если вы используете это в своем пароле, то вы должны использовать его два раза, т.е. ^^
чтобы получить один в пароле.
Например, если вы введете pass^^word
тогда ваш пароль будет pass^word
,
Альтернативой может быть использование "
двойные кавычки вокруг пароля. Как: "передать ^ Слово". Это решит вашу проблему.
Надеюсь, что это поможет.