echo dodaje przestrzeń podczas używania z rurą

Podczas odpowiadaniato pytanie znalazłem dziwne zachowanie, dla którego nie mam wyjaśnienia

for /f "delims=" %a in ('(for /l %z in (1,1,10^) do @echo %z^)') do @echo %a0

Zobaczysz numery 10..100, teraz po prostu dodaj potok, np. dosort lubmore, cokolwiek:

for /f "delims=" %a in ('(for /l %z in (1,1,10^) do @echo %z^)^|sort') do @echo %a0

Zostaną dodane spacje między%a i0! Wygląda na to, że echo czegoś w potoku dodaje spację, można to łatwo zobaczyć:

>_tempfile echo no space here
>_tempfile echo and here's a space|more

i nawet

>_tempfile <nul set /p =also a space|sort

(prawdopodobnie używa echa do wydrukowania monitu)

Nie dzieje się tak, gdy nie ma przekierowania wyjścia (do pliku lub polecenia). Czy to błąd, czy coś mi brakuje? Jak pozbyć się przestrzeni? (poza brudnym hackiem zrywania ostatniego bohateravar:~0,-1)

questionAnswers(2)

yourAnswerToTheQuestion