эхо добавляет пространство при использовании с трубой

Отвечаяэтот вопрос я нашел какое-то странное поведение, для которого у меня нет объяснения

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

Вы увидите числа 10..100, теперь просто добавьте трубу, например, вsort или жеmore, без разницы:

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

Будут добавлены пробелы между%a а также0! Looks like echo-ing something through a pipe adds a trailing space, it can be easily seen:

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

и даже

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

(вероятно, использует echo для печати приглашения)

Это не происходит, когда нет перенаправления вывода (в файл или для команды). Это ошибка или я что-то упустил? Как мне избавиться от места? (кроме грязного взлома последнего персонажа сvar:~0,-1)

Ответы на вопрос(2)

Ваш ответ на вопрос