Lote de Windows: eco sin nueva línea

Resuelto gregseth asked hace 13 años • 20 respuestas

¿Cuál es el equivalente por lotes de Windows del comando de shell de Linux echo -nque suprime la nueva línea al final de la salida?

La idea es escribir en la misma línea dentro de un bucle.

gregseth avatar Aug 18 '11 16:08 gregseth
Aceptado

Usando sety el /pparámetro puedes repetir sin nueva línea:

C:\> echo Hello World
Hello World

C:\> echo|set /p="Hello World"
Hello World
C:\>

Fuente

arnep avatar Aug 18 '2011 10:08 arnep

Usando: echo | set /p=o <NUL set /p=ambos funcionarán para suprimir la nueva línea.

Sin embargo, esto puede ser muy peligroso cuando se escriben scripts más avanzados, cuando verificar ERRORLEVEL se vuelve importante, ya que configurar set /p=sin especificar un nombre de variable establecerá ERRORLEVEL en 1.

Un mejor enfoque sería simplemente usar un nombre de variable ficticio como este:
echo | set /p dummyName=Hello World

Esto producirá exactamente lo que quieres sin que sucedan cosas furtivas en segundo plano, como tuve que descubrir por las malas, pero esto solo funciona con la versión canalizada; <NUL set /p dummyName=Helloseguirá elevando el ERRORLEVEL a 1.

xmechanix avatar Jul 05 '2012 00:07 xmechanix