what sintaxis off means lenguaje batch bat windows batch-file echo

windows - off - sintaxis echo cmd



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

Esta pregunta ya tiene una respuesta aquí:

Al enviar mensajes de estado a la consola desde un archivo por lotes de Windows, deseo imprimir líneas en blanco para dividir la salida. ¿Cómo hago esto?


A menudo, el consejo es 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 exista, generará una línea vacía.

Podría 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 las diferentes variantes de ECHO:// está en los consejos de DOS: ECHO. NO DA texto o línea en blanco .


Cualquiera de las siguientes tres opciones funciona para usted:

echo[ echo( echo.

Por ejemplo:

@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.


Nota: Aunque mi respuesta original atrajo a varios votos favorables, decidí que podría hacerlo mucho mejor. Puede encontrar mi respuesta original (simplificada y equivocada) en el historial de edición.

Si Microsoft tenía la intención de proporcionar un medio para generar una línea en blanco desde cmd.exe , Microsoft seguramente habría documentado una operación tan simple. Es esta omisión la que me motivó a hacer esta pregunta.

Por lo tanto, dado que no se documenta un medio para generar una línea en blanco desde cmd.exe , posiblemente se debería considerar cualquier sugerencia de cómo lograr esto como un truco . Esto significa que no existe un método conocido para generar una línea en blanco desde cmd.exe que garantice que funciona (o funciona de manera eficiente) en todas las situaciones.

Con esto en mente, aquí hay una discusión de los métodos que se han recomendado para generar una línea en blanco desde cmd.exe . Todas las recomendaciones se basan en variaciones del comando de echo .

echo.

Si bien esto funcionará en muchas situaciones, si no en la mayoría, debería evitarse porque es más lento que sus alternativas y en realidad puede fallar (ver here , here y here ). Específicamente, cmd.exe primero busca un archivo llamado echo e intenta iniciarlo. Si un archivo llamado echo pasa a existir en el directorio de trabajo actual, echo. fallará con:

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

echo: echo/

Al final de here , el autor argumenta que estos comandos pueden ser lentos, por ejemplo, si se ejecutan desde una ubicación de unidad de red. No se proporciona una razón específica para la posible lentitud. Pero se puede inferir que puede tener algo que ver con el acceso al sistema de archivos. (¿Quizás porque : y / tienen un significado especial en una ruta del sistema de archivos de Windows?)

Sin embargo, algunos pueden considerar que son opciones seguras, ya que : y / no pueden aparecer en un nombre de archivo. Por esa u otra razón, echo: es recomendado por SS64.com here .

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

Este extenso debate incluye lo que creo que es todo esto. Varias de estas opciones también se recomiendan en here . 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 todos estos producen una línea en blanco, independientemente de si existen archivos llamados echo , echo+ , echo, ..., echo] en el directorio de trabajo actual. (Tenga en cuenta que mi pregunta es anterior al lanzamiento de Windows 10. Por lo tanto, reconozco la posibilidad de que las versiones anteriores de Windows se comporten de manera diferente).

En here , jeb afirma que echo( siempre funciona. 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 aportó mucho contenido valioso a otras referencias He citado en esta respuesta.

Conclusión: No use el echo. . De las muchas otras opciones que encontré en las fuentes que he citado, el apoyo para estos dos parece más autoritario:

echo( echo:

Pero no he encontrado ninguna evidencia contundente de que el uso de cualquiera de estos siempre estará libre de 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.