eco está adicionando espaço quando usado com um cano
Enquanto respondeisto pergunta eu encontrei algum comportamento estranho para o qual eu não tenho explicação
for /f "delims=" %a in ('(for /l %z in (1,1,10^) do @echo %z^)') do @echo %a0
Você verá os números 10.100, agora apenas adicione o tubo, por exemplo parasort
oumore
, tanto faz:
for /f "delims=" %a in ('(for /l %z in (1,1,10^) do @echo %z^)^|sort') do @echo %a0
Haverá espaços adicionados entre%a
e0
! Parece que algo ecoando em um tubo adiciona um espaço à direita, pode ser facilmente visto:
>_tempfile echo no space here
>_tempfile echo and here's a space|more
e até mesmo
>_tempfile <nul set /p =also a space|sort
(provavelmente usa o eco para imprimir o prompt)
Isso não acontece quando não há redirecionamento de saída (seja em um arquivo ou para um comando). É um bug ou estou faltando alguma coisa? Como me livrar do espaço? (além do truque sujo de tirar o último personagem comvar:~0,-1
)