batch-file
Creando archivos usando Batch
Buscar..
Introducción
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:
echo Hello World > myfile.txt
guarda "Hello World" en myfile.txtecho your name is %name% >> myfile.txt
agrega "su nombre es xxxx" en myfile.txtdir 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