O que você precisa fazer é colocar sua senha entre aspas assim:
set pwd="abc&123"
echo %pwd%
Deixe-me saber como é isso.
Estou tentando algo como:
set pwd = abc&123
echo password %pwd%
Eu obtenho o resultado como ...
'123' is not recognized as an internal or external command, operable program or batch file.
password abc
O sistema é assim ou há uma fuga para esses caracteres?
O que você precisa fazer é colocar sua senha entre aspas assim:
set pwd="abc&123"
echo %pwd%
Deixe-me saber como é isso.
Descobri que funciona melhor com uma combinação da resposta de ambos os martineau e a resposta do mastashake57.
set pwd=abc^&123
echo %pwd%
Ainda falha e
set pwd="abc&123"
echo %pwd%
Adiciona aspas a ele (não é possível remover as aspas com um loop for
ou string manipulável porque ele falhará novamente, graças ao e comercial), o que não é ótimo.
No entanto,
set "pwd=abc^&123"
echo %pwd%
Funciona perfeitamente.
Espero que ajude.
A partir do arquivo de ajuda de referência da linha de comando:
The ampersand (&), pipe (|), and parentheses ( ) are special characters that must be preceded by the escape character (^) or quotation marks when you pass them as arguments.
Parece que colocar a senha inteira entre aspas seria mais fácil do que escapar de caracteres individuais se houver mais de dois caracteres nela que precisem de tratamento.
O que você realmente precisa é:
set pwd=abc^^^&123
echo %pwd%
Ou:
set "pwd=abc^&123"
echo %pwd%
Como &
é um caractere especial, você deve escapar com ^
, resultando em ^&
.
A execução de set pwd=abc^&123
definirá a variável como o valor abc&123
. Depois disso, se você executar echo %pwd%
, estará executando echo abc&123
.
Ainda, echo abc&123
não funciona como esperado, porque &
é um caractere especial. Você pode evitar isso adicionando aspas: echo "abc&123"
, mas sua saída também teria os caracteres de cotação. Em outras palavras, usar citações não é exatamente uma solução adequada.
O que você precisa é escapar do &
char quando você executar o comando echo
:
echo abc^&123
Portanto, a variável precisa conter o valor abc^&123
. Para definir a variável com o valor abc^&123
, você precisaria escapar dos caracteres especiais ^
e &
, resultando em:
set pwd=abc^^^&123
Tags command-line windows batch