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)

questionAnswers(2)

yourAnswerToTheQuestion