El eco agrega espacio cuando se usa con una tubería.

Mientras respondeesta pregunta encontré algún comportamiento extraño para el que no tengo explicación

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

Verá los números 10..100, ahora solo agregue la tubería, por ejemplo. asort omore, lo que sea:

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

Habrá espacios agregados entre%a y0! Parece que hacer eco de algo a través de una tubería agrega un espacio al final, se puede ver fácilmente:

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

e incluso

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

(probablemente use eco para imprimir el aviso)

Esto no ocurre cuando no hay redirección de salida (ya sea en un archivo o para un comando). ¿Es un error o me falta algo? ¿Cómo me deshago del espacio? (Además del truco sucio de despojar al último personaje convar:~0,-1)

Respuestas a la pregunta(2)

Su respuesta a la pregunta