Пакетное выполнение сценариев: передача пароля аргумента, содержащего символ вставки

Итак, у меня есть следующий пакетный скрипт (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,

Альтернативой может быть использование " двойные кавычки вокруг пароля. Как: "передать ^ Слово". Это решит вашу проблему.

Надеюсь, что это поможет.

Другие вопросы по тегам