Si quieres saber cómo realizar pequeños programas para ejecutar acciones automáticamente y olvidarte de tareas repetitivas, éste es tu artículo :) Vamos a ver unos comandos muy fáciles pero muy poderosos, con los cuales podremos hacer increibles scripts, en muy pocos minutos y que nos ahorrará un tiempo maravilloso para dedicarlo nuestros menesteres :P
¿Qué es un fichero batch?
Un fichero batch es un conjunto de instrucciones o líneas de código escritas en lenguaje MS-DOS y no se requiere ningún programa pesado ni especial para crearlos, simplemente nos bastaría con abrir un simple editor de texto (como Bloc de Notas, Notepad++ *recomendado*, ...), incluir las intrucciones que queramos ejecutar y darle extensión .bat o .cmd al fichero en cuestión. Al ejecutarse, Windows abrirá automáticamente una consola de comandos (cmd) e irá ejecutando cada línea del fichero secuencialmente.
Si estás empezando en este mundillo de los scripts, la programación y realmente te atrae, te recomiendo empezar con algún libro sobre Cómo crear scripts con MS-DOS . No te arrepentirás ;)
¿Cómo crear un fichero batch?
Para empezar a crear un fichero batch, hay que saber 4 comandos básicos (aparte de abrir el Notepad++ :)):
@echo off
: incluir en la primera línea del fichero.echo
: Muestra el literal que pongamos a continuación en la consola de comandos. Muy útil para saber qué secuencia se está ejecutando en cada momento y para pedir información al usuario.pause
: Este comando sirve para dejar las instrucciones en espera hasta que nosotros pulsemos alguna tecla para permitirle continuar. Muy útil sobretodo al principio de empezar a programar ficheros batch para ver los posible errores que nos ha tirado el códigoexit
: Támbieneof
, sirven para cerrar la ventana de comandos una vez se han ejecutado todas las instrucciones del fichero.
Como ejemplo, el clásico programa que nos escribe Hola Mundo en la consola de comandos sería así:
@echo off echo Hola Mundo pause exit
Comandos Batch
Comando | Utilización | Ejemplo |
CD | Sirve para cambiar del directorio actual al indicado |
Cambia del directorio actual al directorio "Prueba" del disco C |
COPY | Copia los ficheros de la ubicación origen a la ubicación destino
| copy c:\Prueba\fichero.txt c:\fichero2.txt Copiaría "fichero.txt" de la carpeta "Prueba" a la raíz de C con nombre "fichero2.txt" |
ECHO | Muestra por pantalla el literal indicado |
Muestra por pantalla el literal: "El e-Informatico.es me gusta" |
PAUSE | Se queda en estado de espera hasta que el usuario pulse una tecla | pause |
TIME | Muestra la hora del sistema | echo %time% |
DATE | Muestra la fecha del sistema | echo %date% |
DEL | Elimina el fichero indicado | del fichero.txt |
MD | Crea un directorio | md prueba |
RD | Elimina un directorio | rd prueba |
:: o REM | Sirve para comentar un línea | :: Esto es un comentario REM Esto también es un comentario |
Redirecciones | ||
> | Incluye la salida del comando de la izquierda en el fichero indicado en la derecha | echo El e-Informatico.es > fichero.txt Crea fichero.txt con el literal "El e-Informatico.es" |
>> | Añade la salida del comando de la izquierda al fichero indicado en la derecha (append). | echo me gusta >> fichero.txt Añade el literal "me gusta" a lo que hubiese en fichero.txt |
Variables | ||
%var% | Las variables se muestran entre porcentajes '%' | |
set | Se utiliza para asignar valores a variables | set var=datos asigna el valor "datos" en la variable "var" set /p var= asigna valor introducido por el usuario a la variable "var" set /a sum=%num1%+%num2% para cuenta se utiliza el parámetro /a |
Trucos | ||
%var: =% | Elimina los espacios en blanco que contenga la variable | |
%var:~x,y% | Crea una variable a partir de los elementos de otra. El valor de la nueva variable son los Y elementos siguientes a partir de la posición X. | set anio=%date:~6,4% |
Vídeo: Primeros Pasos Crear Fichero Batch
Tienes un ejemplo práctico en el siguiente video. Entra y suscríbete!
Y, como siempre, si estás empezando y algo no te sale, consulta a través de los comentarios, quizá podamos ayudarte! ;)