Saltar al contenido

Hacer eco de una línea en blanco (vacía) a la consola desde un archivo por lotes de Windows

Esta es el arreglo más acertada que te podemos dar, sin embargo mírala detenidamente y analiza si se puede adaptar a tu trabajo.

Solución:

Cualquiera de las siguientes tres opciones funciona para usted:

eco[

echo(

echo. 

For example:

@echo off
echo There will be a blank line below
echo[
echo Above line is blank
echo( 
echo The above line is also blank.
echo. 
echo The above line is also blank.

Note: Though my original answer attracted several upvotes, I decided that I could do much better. You can find my original (simplistic and misguided) answer in the edit history.

If Microsoft had the intent of providing a means of outputting a blank line from cmd.exe, Microsoft surely would have documented such a simple operation. It is this omission that motivated me to ask this question.

So, because a means for outputting a blank line from cmd.exe is not documented, arguably one should consider any suggestion for how to accomplish this to be a hack. That means that there is no known method for outputting a blank line from cmd.exe that is guaranteed to work (or work efficiently) in all situations.

With that in mind, here is a discussion of methods that have been recommended for outputting a blank line from cmd.exe. All recommendations are based on variations of the echo command.


echo.

While this will work in many if not most situations, it should be avoided because it is slower than its alternatives and actually can fail (see here, here, and here). Specifically, cmd.exe first searches for a file named echo and tries to start it. If a file named echo happens to exist in the current working directory, echo. will fail with:

'echo.' is not recognized as an internal or external command,
operable program or batch file.

echo:
echo

At the end of this answer, the author argues that these commands can be slow, for instance if they are executed from a network drive location. A specific reason for the potential slowness is not given. But one can infer that it may have something to do with accessing the file system. (Perhaps because : and have special meaning in a Windows file system path?)

However, some may consider these to be safe options since : and cannot appear in a file name. For that or another reason, echo: is recommended by SS64.com here.


echo(
echo+
echo,
echo/
echo;
echo=
echo[
echo]

Esta extensa discusión incluye lo que creo que son todos estos. Varias de estas opciones también se recomiendan en esta respuesta SO. Dentro de la discusión citada, esta publicación termina con lo que parece ser una recomendación para echo( y echo:.

Mi pregunta en la parte superior de esta página no especifica una versión de Windows. Mi experimentación en Windows 10 indica que todo de estos producen una línea en blanco, independientemente de si los archivos nombrados echo, echo+, echo,, …, echo] existen en el directorio de trabajo actual. (Tenga en cuenta que mi pregunta es anterior al lanzamiento de Windows 10. Por lo tanto, concedo la posibilidad de que las versiones anteriores de Windows se comporten de manera diferente).

En esta respuesta, @jeb afirma que echo(siempre obras. Para mí, la respuesta de @jeb implica que otras opciones son menos confiables, pero no proporciona ningún detalle sobre por qué podría ser así. Tenga en cuenta que @jeb contribuyó con mucho contenido valioso a otras referencias que he citado en esta respuesta.


Conclusión: Hacer no usar echo.. De las muchas otras opciones que encontré en las fuentes que he citado, el soporte para estas dos parece ser el más autorizado:

echo(
echo:

Pero no he encontrado ninguna evidencia sólida de que el uso de cualquiera de estos sea siempre sin problemas.


Ejemplo de uso:

@echo off
echo Here is the first line.
echo(
echo There is a blank line above this line.

Rendimiento esperado:

Here is the first line.

There is a blank line above this line.

A menudo existe la sugerencia de usar ‘eco’.

Pero eso es lento y podría fallar con un mensaje de error, ya que cmd.exe buscará primero un archivo llamado ‘echo’ (sin extensión) y solo cuando el archivo no existe, generará una línea vacía.

Podrías usar echo(. Esto es aproximadamente 20 veces más rápido y funciona siempre. El único inconveniente podría ser que parece extraño.

Más sobre los diferentes ECHO:/ variantes está en consejos de DOS: ECHO. NO da el texto o la línea en blanco.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *