эхо добавляет пространство при использовании с трубой
Отвечаяэтот вопрос я нашел какое-то странное поведение, для которого у меня нет объяснения
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
)