Documentos de Académico
Documentos de Profesional
Documentos de Cultura
bat y como
crearlos
Conocimientos y reglas elementales y necesarias para utilizar la consola de CMD de
Windows y crear los archivos batch. Guía paso por paso para crear tus propias aplicaciones
ejecutables, códigos y ejemplos prácticos, consejos y recomendaciones.
El principal uso de estos archivos en la actualidad, es la de permitir a los usuarios crear sus
propias aplicaciones, que permitan realizar tareas sencillas pero tediosas y repetitivas, de
acuerdo a la labor en que usamos cada uno nuestra PC y así evitar la instalación de software
de terceros, que a la larga harán la misma función, que un archivo batch creado con un
simple archivo de texto.
Los archivos batch son ideales para varias funciones, por ejemplo hacer múltiples copias,
extraer y listar información, eliminar virus, planificar tareas, ejecutar limpiezas en el
sistema, hacer respaldos de datos e información, automatizar descargas de internet, en fin
infinidad de aplicaciones.
Como crear un archivo batch.
Para crear un archivo batch solo es necesario un editor de texto plano, que puede ser el
Notepad++ (recomendado) o hasta el simple Bloc de notas.
Notepad++ lo puedes descargar gratis de sourceforge.net, resalta con colores diferentes la
sintaxis, lo que permite percatarse fácilmente de cualquier error en el código empleado.
No es necesario conocimientos de informática, solo comprender simples reglas que veras
más abajo y familiarizarse con algunos de los comandos más empleados.
La estructura de un archivo batch es sencilla:
• Una primera línea: @ECHO OFF (no es imprescindible para que funcione)
• Las instrucciones que pueden constar de una simple línea o de varias, todas se irán
ejecutando en su orden.
• Al final generalmente se emplea EXIT o EOF que cierra la ventana de la consola.
Al hacer tus primeros batch siempre emplea PAUSE después de las instrucciones, su uso
como la palabra indica, pausa y permite ver mensajes de error, en caso de que exista
alguno, de otra forma la consola se cerrará y será imposible conocer lo que lo ha causado.
Antes de empezar con este pequeño tutorial debes de crear todas las condiciones en tu
sistema para facilitar la edición, prueba y creación de los batch, para eso te sugiero:
Clave para crear botón en el menú contextual para acceder a la Consola del CMD
[HKEY_CLASSES_ROOTDirectoryBackgroundshellrunas]
@=”Abrir CMD Aqui”
“Icon”=”cmd.exe”
[HKEY_CLASSES_ROOTDirectoryBackgroundshellrunascommand]
@=”cmd.exe /s /k pushd ”%V
2- Crea la posibilidad de crear plantillas de archivos batch con la opción Nuevo del menú
contextual, para hacerlo ejecuta la siguiente clave del registro.
Clave para crear Nuevo CMD con el click derecho del mouse
[HKEY_CLASSES_ROOT.cmd]
@=”cmdfile”
[HKEY_CLASSES_ROOT.cmdPersistentHandler]
@=”{5e941d80-bf96-11cd-b579-08002b30bfeb}”
[HKEY_CLASSES_ROOT.cmdShellNew]
“NullFile”=”"
“Data”=”@echo off”
3- Activa en tu consola de cmd la opción de edición rápida, que te permitirá copiar y pegar
texto desde y hacia la consola, si no sabes hacerlo manualmente ejecuta la siguiente clave
del registro.
[HKEY_CURRENT_USERConsole]
“QuickEdit”=dword:00000001
@echo off
echo Hola Mundo
pause
exit
echo
Muestra un texto en pantalla, que es el texto que viene después, en este caso es: Hola
Mundo.
pause
Como bien se lee, pausa la ejecución del código. Además muestra el texto: “Presione una
tecla para continuar”.
exit
CD o CHDIR:
Sirve para cambiar de Directorio o mostrar el nombre del actual. Para usarlo,
usa CD o CHDIR seguido de la ubicación del directorio al cual nos moveremos.Por ejemplo:
CD C:
CHDIR C:
Los ejemplos anteriores hacen exactamente lo mismo, cambian al Disco C
COPY:
Copia uno o más archivos a otro destino.
Su sintaxis es la siguiente:
Por ejemplo:
Aquí copiaríamos un archivo del Disco C llamado archivo.txt como archivo2.txt, para
acortar un poco podríamos usar:
DEL:
Elimina uno o más archivos, su sintaxis es:
DEL ARCHIVO
DEL /F /Q archivo
MOVE:
Sirve para mover un archivo. Su sintaxis es:
CLS:
Sirve para limpiar el contenido de la pantalla.
Por ejemplo:
@echo off
ECHO Hola, Cuando pulses una tecla se borrará el contenido y cambiará por otro.
PAUSE
CLS
ECHO ¿Ves?
pause
exit
Si quisiéramos averiguar más sobre las funciones, o conocer algunas nuevas por nuestra
propia cuenta podemos escribir en el CMD el nombre del comando seguido de /? y
aparecerá toda la información necesaria.
Con el siguiente código podemos crear un archivo batch que copie un archivo, luego lo
mueva a otro directorio, borre el original y vuelva a copiar el copiado.
En la carpeta donde crearás el archivo batch, crea un archivo de texto llamado copiame.txt.
En él, escribe lo que quieras. Este será el archivo que copiaremos.
Código:
@echo off
echo Hola, Copiaremos un archivo
pause
COPY copiame.txt copiado.txt
MOVE copiado.txt C:copiado.txt
DEL copiame.txt
CD C:
COPY copiado.txt copiado2.txt
EXIT
Usando archivos batch podemos crear otros archivos diferentes, para eso podemos usar
algo como lo siguiente:
Al escribir ECHO seguido de un texto y el signo > creamos un archivo con el nombre que
siga.
Si ocupamos un ECHO seguido de un texto y el doble signo >> se escribirá en la siguiente
linea vacía del archivo que prosiga.
Hagamos la prueba:
Aj ejecutarlo, la pantalla negra se abrirá y cerrará, pero en la carpeta en la que está nuestro
batch, se habrá creado un nuevo archivo nuevo.txt que si lo abrimos, dentro tendrá escrito lo
que especificamos anteriormente.
Además se puede jugar con los caracteres. Un ejemplo, donde se cambiaron los colores, los
caracteres y el pause:
@echo off
color 30
echo ==================================
echo = =
echo = Personalizado =
echo = =
echo ==================================
echo.
echo.
echo Esto esta personalizado, para salir presiona una tecla.
pause>nul
exit
Vale mencionar que ECHO, seguido de un punto, sirve para saltarse una línea.
Variables:
Las variables son muy importantes y prácticas en los archivos batch, aprende como
crearlas.
Para escribir una variable creada anteriormente, debemos escribir su nombre entre los
signos %%
Por ejemplo:
@echo off
set Nombre = Norfi Carrodeguas
echo %Nombre%
pause
@echo off
SET /P Nombre = Escriba su Nombre:
Mediante archivos batch también podemos realizar operaciones como multiplicar, sumar,
dividir, etc. usando el modificador /A, por ejemplo de la siguiente forma hacemos la
operación: 2 + 43 = 45.
SET numero1 = 2
SET numero2 = 43
SET /A suma = %numero1% + %numero2%
echo %suma%
pause
exit
Usando el modificador /A, lo que quede a la derecha del signo igual (=). se consideran
expresiones numéricas a evaluar. Su pueden usar los siguientes caracteres como operadores
matemáticos:
+-*/%
Puedes combinar varios comandos en un archivo batch intercalando el signo |, esto indica
que se ejecutará el segundo comando utilizando el resultado del primero, un ejemplo es:
Si deseas seguir agregando datos al mismo archivo creado utilizando otro comando utiliza:
TYPE texto.txt
Donde quiera que haya una cadena que tenga espacios tienes que utilizar las comillas, en
las rutas a los archivos también es recomendado utilizarlas.
Cuando la ruta a un archivo determinado es muy complicada, lo más fácil es dar clic en
lasPropiedades del archivo y copiar la ruta que allí aparece.
También para eso puedes instalar una clave del registro que agrega al menú contextual del
mouse la facilidad de que al hacer clic en un archivo del explorador y seleccionar “Copiar
Ruta” puedes pegarla en tu batch.
Para crear un mensaje en un batch, es decir una ventana que muestra una indicación o
comentario al usuario, escribe en el batch lo siguiente:
Para que se muestre en el batch la fecha y la hora utiliza las variables DATE y TIME de la
siguiente forma:
@echo off
echo Fecha:%date%
echo Hora:%time%
En el caso del explorer se utiliza mucho para poder solucionar los bloqueos del explorador
de Windows, al cerrarse el explorador para iniciarlo abre el administrador de tareas,
selecciona Nueva tarea y escribe:
Start explorer.exe
Para ejecutar los comandos no siempre es necesario abrir la consola, puedes ejecutarlos
introduciéndolos directamente en el cuadro que se encuentra en Inicio, solo anteponiendo
CMD o CMD.EXE de las siguientes dos formas:
Introduce CMD /K comando+ opción y oprime Enter.
Se ejecutará el comando con la opción y dejara abierta la ventana de cmd.
Introduce CMD /C comando+ opción y oprime Enter.
Se ejecutará el comando con la opción y cerrará la ventana de cmd al terminar.
Dos sencillos ejemplos:
Como ves tiene un estilo algo diferente con un icono, titulo y hasta con sonido. Solo tienes
que insertar el texto que quieres se muestre en el mensaje y en el título que tendrá la
ventana en la parte superior.
Los scripts creados de esta forma se almacenarán en la carpeta Temp donde no causarán
molestias y serán eliminados al ejecutar cleanmgr.exe.
De la misma forma anterior puedes generar mensajes con iconos y sonidos diferentes
utilizando las siguientes líneas:
HKEY_CLASSES_ROOTcmdfileDefaultIcon
%SystemRoot%System32imageres.dll,-68
Puedes emplear algunos de los iconos que se utilizan para los ejecutables exe solo dando
dos clics en el valor predeterminado y pegando una de las siguientes rutas:
%SystemRoot%System32imageres.dll,-15
%SystemRoot%System32imageres.dll,-87
De la misma forma puedes emplear cualquier otro icono solo insertando la ruta necesaria,
en la libreríaimageres.dll se almacenan multitud de iconos en los que escoger.
Es posible modificar la clave indicada usando la línea de comandos, para eso utiliza el
siguiente código en un archivo batch o introduciéndolo directamente en la consola, Inicio o
Ejecutar.
REG ADD HKEY_CLASSES_ROOTcmdfileDefaultIcon /ve /t REG_EXPAND_SZ /d
C:WindowsSystem32imageres.dll,-15 /f
Usar la línea de comandos para realizar modificaciones al Registro de Windows es
peligroso, cualquier equivocación en un carácter puede ser desastroso, por lo que te
aconsejo realizarlas con cautela y solo si posees conocimientos básicos en la edición del
Registro.
@ECHO OFF
TASKKILL /F /IM explorer.exe
timeout /nobreak 04
start explorer.exe
También puedes reiniciar el explorador de otra manera, copia el siguiente código, pégalo
directamente en el cuadro de Inicio o Ejecutar y oprime Enter:
CMD /C TASKKILL /F /IM explorer.exe & timeout /nobreak 04 & start explorer.exe
Para restaurar la asociación de los archivos batch de extensión de archivo cmd, abre una
ventana de comandos y pega lo siguiente y oprime Enter:
assoc .cmd
debe devolver lo siguiente: .cmd=cmdfile
si no es asi escribe:
assoc .cmd=cmdfile
Para restaurar la asociación de los archivos bat de extensión de archivo bat, abre una
ventana de comandos, pega lo siguiente y oprime Enter:
assoc .bat
debe devolver lo siguiente: .bat=batfile
si no es asi escribe:
assoc .bat=batfile
Como convertir los archivos batch en exe (ejecutables).
Al crear tus archivos batch para realizar tus propias tareas los puedes convertir en
ejecutables facilmente, esto te brindará en algunos casos ventajas y beneficios adicionales.
Algunas son las siguientes:
1- No se podrán modificar con el editor de texto de la misma forma que los batch al dar
clic derecho, lo que impedirá que se deterioren de forma accidental.
2- En caso de que para la ejecución del batch utilices archivos auxiliares como imágenes,
iconos, archivos de texto etc. podrás agruparlos y encapsularlos todos en un mismo
archivo exe (ejecutable) creado.
3- Impedirás que se muestre el código utilizado en su creación (no es mi estilo).
4- Te burlarás de los que siente aversión (injustificada) contra los archivos BAT.
@echo off
color 07
echo Esto es un ejemplo de archivo por lotes
pause
cls
echo La Fecha y Hora
pause>nul
cls
date /t
time /t
pause>nul
cls
echo Cambiemos el color
pause>nul
color 1E
cls
echo Quien eres tu
pause>nul
cls
echo %username%
pause>nul
echo Tus tareas en ejecucion
pause>nul
tasklist
pause>nul
cls
echo Informacion de tu sistema
systeminfo
pause>nul
CLS
echo En que directorio estas
pause>nul
cls
echo %CD%
pause>nul
echo Parece que tienes un virus
pause>nul
@echo off
echo
echo.
echo
echo.
echo
echo.
echo
echo.
echo
echo.
echo
echo.
echo
echo.
echo
echo.
echo
echo.
echo
echo.
echo
echo.
echo
echo.
pause>nul
echo Es solo una broma
pause>nul
exit
@echo off
title Nombre y apellidos
set/p nombre=Escribe tu nombre y oprime Enter.
set/p apellido=Escribe tu primer apellido?
set/p apellido2=Escribe tu segundo apellido?
echo.
echo Tu nombre completo es %nombre% %apellido% %apellido2%
pause >nul
exit
@echo off
title Hacer media de dos numeros
set/p num1=Cual es el primer numero?
set/p num2=Cual es el segundo numero?
set/a media= (%num1% + %num2%) / 2
echo.
echo La media es %media%
pause >nul
exit
Otro ejemplo de calcular el promedio, en este caso entre varios números.
@echo off
title Division de dos numeros
set/p uno=Escriba el numerador
:denominador
set/p dos=Escriba el denominador
if %dos%==0 (goto nosepuede) else (goto dividir)
:nosepuede
echo El denominador no puede ser cero.
goto denominador
:dividir
set/a tres=%uno%/%dos%
echo El resultado de %uno%/%dos% es %tres%
pause>nul
exit
@echo off
title Bucle de ejemplo
color 0A
:bucle
echo
1001010010010100100101001010010010100100101001010010010100100101001010010
010
echo
0110101101101011011010110101101101011011010110101101101011011010110110101
101
goto bucle
exit