Estou tentando algo como:
set pwd = abc&123
echo password %pwd%
Eu recebo o resultado como ...
'123' is not recognized as an internal or external command, operable program or batch file.
password abc
O sistema é assim ou existe uma fuga para esses personagens?
windows
command-line
batch
deostroll
fonte
fonte
Respostas:
O que você precisa fazer é colocar sua senha entre aspas duplas da seguinte forma:
Deixe-me saber como vai.
fonte
set "pwd=abc&123"
Descobri que funciona melhor com uma combinação das respostas de martineau e mastashake57.
Ainda falha e
Adiciona aspas a ele (você não pode remover as aspas com um
for
loop ou manipulação de sequência, porque ela falhará novamente, graças ao e comercial), o que não é tão bom.Contudo,
Funciona perfeitamente.
Espero que ajude.
fonte
pwd
comoabc^&123
. Na maioria das vezes, isso provavelmente é exatamente o que você precisa fazer, mas isso pode te surpreender se você não estiver ciente do que está acontecendo./?
fornece apenas um resumo, uma documentação não abrangente.No arquivo de ajuda de referência da linha de comandos:
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.
fonte
O que você realmente precisa é:
Ou:
Explicação:
Como
&
é um caractere especial, você deve evitá-lo^
, resultando em^&
.A execução
set pwd=abc^&123
definirá a variável para o valorabc&123
. Depois disso, seecho %pwd%
você estiver executando, estará efetivamente executandoecho abc&123
.No entanto
echo abc&123
, não funciona como o esperado, porque&
é um caractere especial. Você pode evitar isso adicionando aspas:echo "abc&123"
mas sua saída também conterá os caracteres das aspas. Em outras palavras, usar aspas não é exatamente uma solução adequada.O que você precisa é escapar do
&
char quando você executa oecho
comando:Assim, a variável deve conter o valor
abc^&123
. Para definir a variável para o valorabc^&123
, você precisaria escapar dos caracteres especiais^
e&
, resultando em:fonte