2

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

Perforce password (P4PASSWD) invalid or unset.

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

2 ответа2

4

Ты прав. Амперсанд - это специальный символ в командной строке 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>
0

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .