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
)