Buscar..


Introducción

Una característica útil de los archivos por lotes es poder crear archivos con ellos. Esta sección muestra cómo crear archivos usando código de lote.

Sintaxis

  • echo (escribe aquí lo que quieras en el ser) >> (nombre de archivo)
  • eco (nombre de variable) >> (nombre de archivo)

Observaciones

Si existe un archivo, > sobrescribirá el archivo y >> agregará al final del archivo. Si un archivo no existe, ambos crearán un nuevo archivo.

Además, el comando echo agrega automáticamente una nueva línea después de su cadena.

Asi que

echo 1 > num.txt
echo 1 > num.txt 
echo 2 >> num.txt 

creará el siguiente archivo:

1
2

No esta:

1 1 2

o

1 2

Además, no puede modificar una sola línea en un archivo de texto. Debe leer todo el archivo, modificarlo en su código y luego escribir nuevamente en todo el archivo.

Redireccion

Formato:

[command] [> | >>] [filename]

> guarda la salida de [comando] en [nombre de archivo].

>> agrega la salida de [comando] a [nombre de archivo].

Ejemplos:

  1. echo Hello World > myfile.txt guarda "Hello World" en myfile.txt

  2. echo your name is %name% >> myfile.txt agrega "su nombre es xxxx" en myfile.txt

  3. dir C:\ > directory.txt guarda el directorio de C: \ en directory.txt

Eco para crear archivos

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)

Si desea crear un archivo a través del comando ECHO , en un directorio específico de su computadora, podría tener un problema.

ECHO Hello how are you? > C:\Program Files\example.bat

(This will NOT make a file in the folder "Program Files", 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:\Program Files\example.bat"
(This will create "example.bat" in the folder "Program Files")

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

ECHO message > file1.bat > example.bat

(example.bat is NOT going to contain "message > file1.bat")
example.bat will just contain "message"... nothing else

Entonces, ¿cómo hacemos esto? Bueno para esto usamos el símbolo ^

ECHO message ^> file1.bat > example.bat

(example.bat is going to contain "message > file1.bat")

Lo mismo ocurre con otras cosas en lote

El siguiente paso requiere que usted tenga algún conocimiento sobre las variables y las declaraciones:

Haga clic aquí para conocer las variables | Haga clic aquí para obtener más información sobre las declaraciones if y else.

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)

Declaraciones IF / ELSE:

ELSE statements are written with "pipes" ||

IF ^%example^%=="Hello" ECHO True || ECHO False > file.bat

(example.bat is going to contain "if %example%=="Hello" echo True")
[it ignores everything after the ELSE statement]

para dar salida a toda la línea, entonces hacemos lo mismo que antes.

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", ELSE dirá "Falso"

Guardando la salida de muchos comandos

Usando muchos comandos ECHO para crear un archivo por lotes:

(
  echo echo hi, this is the date today
  echo date /T
  echo echo created on %DATE%
  echo pause >nul
)>hi.bat

El intérprete de comandos trata toda la sección entre paréntesis como un solo comando, luego guarda toda la salida en hi.bat .

hi.bat ahora contiene:

echo hi, this is the date today
date /T
echo created on [date created]
pause >nul


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