Амперсанд в Windows Password

У меня есть пароль для учетной записи Perforce, который содержит амперсанд (&), и когда я пытаюсь использовать определенные команды P4, я получаю следующую ошибку:

Perforce password (P4PASSWD) invalid or unset.

У меня такое ощущение, что это как-то связано с амперсандом, из-за чего пароль не распознается в командной оболочке Windows, однако я больше знаком с bash, чем с Windows, поэтому не уверен, как с этим справиться. Есть ли эксперты по Windows, которые видели что-то подобное? Я хотел бы избежать необходимости менять пароль, если это возможно, но каким-то образом установить переменную среды P4PASSWD так, чтобы она распознавалась оболочкой как правильный пароль.

2 ответа

Ты прав. Амперсанд - это специальный символ в командной строке Windows. Обычно, чтобы избежать этого, вы используете каретку (^) или двойные кавычки. Если ни один из этих способов не работает (или если вы на самом деле не вводите свой пароль в командной строке), я бы предложил просто изменить ваш пароль.

Например:

C:\Windows\System32>echo a&b
a
'b' is not recognized as an internal or external command,
operable program or batch file.

C:\Windows\System32>echo a^&b
a&b

C:\Windows\System32>

Синтаксис ссылки : Escape-символы, разделители и кавычки

^ Побег персонажа.

Добавление escape-символа перед символом команды позволяет рассматривать его как обычный текст. При передаче или перенаправлении любого из этих символов вы должны использовать префикс с escape-символом: & \ < > ^ |

^\ ^& ^| ^> ^< ^^

Так что в командной оболочке Windows вам нужно использовать ^& вместо & избежать особого значения &

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