Não copia o sinal% para a área de transferência
De uma linha de comando
F:\test>echo|set /p=Ps5dP%q$@mxnx|clip
F:\test>Ps5dP%q$@mxnx
O comando funciona como esperado.
De um arquivo em lote
O comando não funciona como esperado. Você pode ver que o echo no arquivo de comando caiu o % .
F:\test>type test.cmd
echo|set /p=Ps5dP%q$@mxnx|clip
F:\test>test
F:\test>echo | set /p=Ps5dPq$@mxnx | clip
F:\test>Ps5dPq$@mxnx
Solução para um arquivo em lote
Escape o % (substitua % por %% )
F:\test>type test.cmd
echo|set /p=Ps5dP%%q$@mxnx|clip
F:\test>test
F:\test>echo | set /p=Ps5dP%q$@mxnx | clip
F:\test>Ps5dP%q$@mxnx
Por que preciso escapar do caractere%?
Escaping Percents
The
%character has a special meaning for command line parameters andFORparameters.To treat a percent as a regular character, double it:
%%
Fonte Sintaxe: caracteres de escape, delimitadores e citações
Leitura Adicional
- Um índice A-Z da linha de comando do Windows CMD - Uma excelente referência para todas as coisas relacionadas à linha do Windows cmd.