Buscar..


Introducción

echo puede ser usado para controlar y producir salida.

Sintaxis

  • ECHO [ON | APAGADO]
  • Mensaje de ECHO
  • ECHO (mensaje
  • ECO(

Parámetros

Parámetro Detalles
ON | APAGADO Puede estar ON o OFF (no distingue mayúsculas y minúsculas)
mensaje Cualquier cadena (excepto ON u OFF cuando se usa sin ( )

Observaciones

  • echo. También mostrará una cadena vacía. Sin embargo, esto es más lento que el echo( ya que echo. Buscará un archivo llamado "echo". Solo si este archivo no existe, el comando funcionará, pero esta verificación lo hará más lento.
  • echo: se comportará como echo( , a menos que el message vea como una ruta de archivo, por ejemplo echo:foo\..\test.bat . En este caso, el intérprete verá echo:foo como nombre de carpeta, tira echo:foo\..\ (porque aparece solo para ingresar al directorio echo:foo luego dejarlo nuevamente) luego ejecute test.bat , que no es el comportamiento deseado.

Mostrando mensajes

Para mostrar "algo de texto", use el comando:

echo Some Text

Esto dará salida a la cadena de Some Text seguido de una nueva línea.

Para mostrar las cadenas On y Off (mayúsculas y minúsculas) o la cadena vacía, utilice a ( lugar de espacios en blanco:

echo(ON
echo(
echo(off

Esto dará como resultado:

ON

off

También es común usar echo. para mostrar una línea en blanco, pero vea las observaciones de por qué esta no es la mejor idea.

Para mostrar texto sin incluir un CR / LF, use el siguiente comando:

<nul set/p=Some Text

Este comando intentará establecer la variable llamada cadena vacía en la entrada del usuario siguiendo una solicitud. El archivo nul se redirige al comando con <nul , por lo que el comando se rendirá tan pronto como intente leerlo y solo quedará la cadena de solicitud. Debido a que el usuario nunca escribió una nueva línea, no hay salto de línea.

Ajuste de eco

La configuración de eco determina si el eco de comando está activado o desactivado. Esto es lo que parece un programa de ejemplo con el comando que se hace eco en (predeterminado):

C:\Windows\System32>echo Hello, World!
Hello, World!

C:\Windows\System32>where explorer
C:\Windows\System32\explorer.exe

C:\Windows\System32>exit

Esto es lo que parece con eco apagado :

Hello, World!
C:\Windows\System32\explorer.exe

Obtención y configuración

Para obtener (mostrar) la configuración de eco, use echo sin parámetros:

> echo
ECHO is on.

Para establecer la configuración de eco, use echo con on u off :

> echo off

> echo
ECHO is off.

> echo on

> echo
ECHO is on.

Tenga en cuenta que con estos ejemplos, la solicitud ha sido representada por > . Cuando se cambia la configuración de eco, el aviso aparecerá y desaparecerá, pero eso hace que los ejemplos no estén claros.

Tenga en cuenta que es posible evitar que un comando se repita incluso cuando el eco está activado, colocando un carácter @ antes del comando.

Echo saca todo literalmente.

Las cotizaciones se darán como están:

echo "Some Text"
"Some Text"

Los tokens de comentario son ignorados:

echo Hello World REM this is not a comment because it is being echoed!
Hello World REM this is not a comment because it is being echoed!

Sin embargo, el echo seguirá generando variables (consulte Uso de variables ) y los caracteres especiales seguirán teniendo efecto:

echo hello && echo world
hello
world

Echo de salida a archivo

Formas de crear un archivo con el comando echo:

echo. > example.bat (creates an empty file called "example.bat")

echo message > example.bat (creates example.bat containing "message")
echo message >> example.bat (adds "message" to a new line in example.bat)
(echo message) >> example.bat (same as above, just another way to write it)

Salida a ruta

Un pequeño problema que puede encontrar al hacer esto:

echo Hello how are you? > C:\Users\Ben Tearzz\Desktop\example.bat

(This will NOT make a file on the Desktop, and might show an error message)

Pero entonces, ¿cómo lo hacemos? Bueno, en realidad es extremadamente simple ... Al escribir una ruta o nombre de archivo que tiene un espacio incluido en su nombre, recuerde usar "comillas"

echo Hello how are you? > "C:\Users\Ben Tearzz\Desktop\example.bat"
(This will make a file on MY Desktop)

Pero, ¿qué sucede si desea crear un archivo que genere un archivo nuevo?

echo message > file1.bat > example.bat

(This is NOT going to output:
"message > file1.bat" to example.bat

Entonces, ¿cómo hacemos esto?

echo message ^> file1.bat > example.bat

(This will output: 
"message > file1.bat" to example.bat

Lo mismo ocurre con otras cosas en lote

Si no ha aprendido qué son las variables y las declaraciones, lo más probable es que no comprenda lo siguiente: haga clic aquí para obtener información sobre las variables | Haga clic aquí para conocer las declaraciones "if"

Variables:

set example="text"
echo %example% > file.bat
(This will output "text" to file.bat)

si no queremos que se muestre "texto", sino simplemente% example% luego escriba:

echo ^%example^% > file.bat
(This will output "%example%" to file.bat)

otras declaraciones:

else = ||
if ^%example^%=="Hello" echo True || echo False > file.bat

(This will output:
if %example%=="Hello" echo True

Para dar salida a toda la línea escribimos:

if ^%example^%=="Hello" echo True ^|^| echo False > file.bat

This will output:
if %example%=="Hello" echo True || echo False

Si la variable es igual a "Hola" entonces dirá "Verdadero", sino dirá "Falso"

@Echo off

@echo off evita que se muestren la solicitud y el contenido del archivo por lotes, de modo que solo se vea la salida. La @ hace que la salida del comando echo off oculte.

Encendiendo el eco en los soportes internos

En el siguiente ejemplo, el echo on tendrá efecto después de que se llegue al final del contexto de paréntesis:

@echo off
(
    echo on
    echo ##
)
echo $$

Para "activar" el eco en un contexto de corchetes (incluidos los comandos FOR y IF ) puede usar la macro FOR / f :

@echo off
setlocal

:: echo on macro should followed by the command you want to execute with echo turned on
set "echo_on=echo on&for %%. in (.) do"

(
  %echo_on% echo ###
)


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow