En este tutorial hablaremos sobre cómo manejar algunas funciones de Windows mediante archivos Batch.
Batch, según Wikipedia es:
Es un archivo de procesamiento por lotes: se trata de archivos de texto sin formato, guardados con la extensión *.bat que contienen un conjunto de comandos DOS. Cuando se ejecuta este archivo bat, los comandos contenidos son ejecutados en grupo, de forma secuencial, permitiendo automatizar diversas tareas.
Cualquier comando DOS puede ser utilizado en un archivo batch.
Hay que aclarar Batch que no es un Lenguaje de Programación. Es un archivo de código que contiene comandos del, Shell de Windows, llamado MS-DOS, que pueden ejecutar desde Inicio->Ejecutar->CMD.
Hay dos maneras de ejecutar comandos Batch.
- Desde el Shell de Windows.
- Escribiéndolos en un archivo de texto con extensión .bat y luego ejecutarlo.
Hola Mundo en Batch
Comenzaremos creando un Simple y clásico “Hola Mundo”, escribiendo en un archivo de texto el siguiente código.
@echo off echo Hola Mundo pause exit
Ahora guardemos el archivo como Nombre.bat y lo ejecutamos. Nos aparecerá una pantalla negra que dirá “Hola Mundo”, luego una linea abajo dirá “Presione una tecla para continuar”
Explicamos:
echo:
Imprime un texto en pantalla, que es el texto que viene después (el que le pasamos como parámetro), que en este caso es “Hola Mundo”. Echo significa eco, por lo mismo “@echo off” elimina el eco, la repetición de la ruta en la que nos encontramos en cada lÃnea código.
pause:
Como bien se lee, pausa la ejecución del código. Además muestra el texto “Presione una tecla para continuar”
exit:
Cierra la ventana de comandos.
Para dejar más en claro cual serÃa la diferencia de no ocupar la linea @echo off la imagen de a continuación muestra como se verÃa la pantalla sin esta linea.

Ahora aprenderemos algunas funciones de Batch:
CD o CHDIR:
Si has trabajado en PHP, te sera fácil entender este concepto. Sirve para cambiar de Directorio o Mostrar el nombre del actual. Para usarlo, CD o CHDIR seguido de la ubicación del directorio al cual nos moveremos.
cd “C:\”
chdir “C:\”
Los ejemplos anteriores hacen exactamente lo mismo, cambian al Disco C
COPY:
Sirve para copiar uno o más archivos a otro destino.
Su sintaxis es la siguiente:
Copy “Dirección del archivo” “Nueva dirección”
Ejemplo:
Copy "C:\archivo.txt" "C:\archivo2.txt"
Aquà copiarÃamos un archivo del Disco C llamado “archivo.txt” como “archivo2.txt”
Para acortar un poco podrÃamos usar:
cd "C:\" Copy "archivo.txt" "archivo2.txt"
Donde primero cambiamos de directorio al Disco C con cd “C:\” y luego al copiar no tenemos que especificar que esta en el Disco C ya que ya nos encontramos en el.
DEL:
Sirve para eliminar uno o más archivos. Su sintaxis es:
Del “ARCHIVO”
También se puede añadir:
del /f /q “archivo”
Donde no pide confirmación de eliminación (/q) y fuerza al archivo a borrarse ( /f )
Move:
Sirve para mover un archivo. Su sintaxis es:
Move “Dirección Archivo” “Nueva Dirección”
Cls:
Sirve para limpiar el contenido de la pantalla:
Ejemplo:
@echo off echo Hola, Cuando pulses la tecla se borrara el contenido y cambiara 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 Shell el nombre del comando seguido de /? y aparecerá toda la información necesaria.
Podemos poner en práctica esto de la siguiente manera:
- Abramos el Shell de windows:
Inicio->Ejecutar-CMD
- Una vez abierto escribamos:
echo off
Para eliminar el eco.
- Luego para borrar el contenido de pantalla escribe:
cls
- Ahora veamos la ayuda de la función Copy:
copy /?
- Cerremos la ventana:
exit
Ahora vamos a crear un 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 .bat crea un archivo de texto llamado copiame.txt. En él, escribe lo que quieras. Este será el archivo que copiaremos.
Ahora el Batch:
@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
Guárdalo en la carpeta como NombreQueTuQuieras.bat, y ejecútalo.
Lo que ha hecho la cadena de instrucciones es más o menos lo siguiente:
Primero apagamos el eco, luego imprimimos en pantalla “Hola, Copiaremos un archivo”
Pausamos el intérprete para que no siga de largo.
A continuación, copiamos el archivo “Copiame.txt” y su copia se llamará “copiado.txt“. La movemos a la carpeta raÃz del disco C, y eliminamos el original.
Por ultimo cambiamos de directorio al disco C, copiamos la copia y cerramos el Batch.
Después de que ejecutemos el Batch, si vamos al Disco C, veremos que hay dos nuevos archivos de texto: uno llamado copiado.txt y otro copiado2.txt.
También si vamos a la carpeta del Batch, veremos no está el archivo de texto original, “copiame.txt”.
Creación de nuevos archivos:
Con Batch podemos crear otros archivos. Para ello, tenemos que escribir algo como esto:
echo TEXTO DE PRIMERA LINEA > nombre.extensión echo TEXTO SEGUNDA LINEA >> nombre.extensión echo TEXTO SIGUIENTE LINEA >> nombre.extensión
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:
echo Creando un Archivo de texto > nuevo.txt echo Esta es la Segunda linea >> nuevo.txt echo Y esta es la Siguiente >> nuevo.txt echo Esto esta genial >> nuevo.txt
Si ejecutamos eso, la pantalla negra se abrirá y cerrará.
Pero en la carpeta en la que está nuestro batch se abra creado un nuevo archivo “nuevo.txt” que si lo abrimos, dentro estará escrito lo que especificamos.
Personalizando el SHELL
Seguro que no te gusta mucho el aspecto del Shell.
Aquà veremos como personalizarlo un poco.
COLOR:
Con la función color podemos cambiar los colores de fondo y las letras. Siendo su sintaxis:
COLOR AB
Donde A= El color de el Fondo y B= Color de las letras.
Para ver todos los colores ve el MS-Dos y escribe color/?
TITLE:
Para cambiar el tÃtulo de la barra de tareas solo escribe:
Title Loquequierascomotitulo
Pause Personalizado:
¿No te gusta que al poner pause salga “Presione una tecla para continuar…”?
Pues si escribes “pause>nul” no aparecerá ni un texto.
Entonces si anteponemos un mensaje, quedarÃa asÃ.
echo Aprieta cualquier tecla para seguir pause>nul
Además puedes jugar con los caracteres. Aquà un ejemplo, donde cambié los colores y jugué con los caracteres y personalicé el pause:

El código que empleé para esto fue:
@echo off color 30 echo ================================== echo = = echo = Personalizado = echo = = echo ================================== echo. echo. echo Esto esta personalizado, para salir presiona una tecla. pause>nul exit
Cabe mencionar que echo. (Echo seguido de un punto)sirve para saltarse una lÃnea.
Matando Procesos:
¿Alguna vez has presionado CTRL+ALT+DELETE?
Si lo haces se abre el Administrador de tarea. En la pestaña procesos salen algunos procesos que están andando en tu pc, haciéndoles clics y apretando “terminar proceso” lo puedes acabar.
Con batch eso es muy fácil, se usa la función:
Taskkill (No funciona en todos los pc, para ver si esta disponible escribe taskkill/?)
Su sintaxis es:
taskkill /f /im proceso.exe
/f Fuerza el término del proceso.
Un ejemplo seria escribir.
taskkill /f /im wmplayer.exe
Si lo ejecutas y tienes el Reproductor de Windows Media abierto, este se cerrará.
ABRIENDO PROCESOS:
Ahora abramos ese proceso que cerramos. Para abrir procesos se usa la función Start que funciona asÃ:
start proceso.exe
También puedes abrir paginas web con tu explorador predeterminado.
Ejemplo1:
start wmplayer.exe
Se abrirá el Reproductor de Música
Ejemplo2:
start www.google.cl
Se abrirá tu Explorador de Internet en Google.
VARIABLES:
Ahora aprendamos a declarar variables. Para crear una se escribe:
set NOMBREVARIABLE = VALOR
Para llamarla debemos escribir su nombre entre los signos %%
Ejemplo:
@echo off set Nombre= Javier Letelier Ruiz echo %Nombre% pause
La pantalla nos mostrara algo asÃ:

Para cambiar el valor solo debemos hacer esto:
set Nombre= Nuevo Valor
Si quieres que tu Variable sea dinámica, osea que el Usuario la elija antepones /p:
set /p Nombre=Escriba su Nombre:
Donde el Batch se pausara solo mostrando el Mensaje que va luego de “=” dejando que se escriba algo.
También podemos multiplicarlas, sumarlas, etc… con /a:
set numero1=2 ser numero2=43 set /a suma= %numero1% + %numero2% echo %suma% pause exit
Si ejecutamos este, nos devolverá la suma de 2 + 43, 45.
Creo que con esto será suficiente.
Ojalá hayan entendido y les haya interesado el batch, que principalmente se puede usar para facilitar algunas tareas de Windows, ya que como veremos en la segunda parte del tutorial se pueden lograr cosas bastante interesantes.
[...] de leer esto deberÃas ya saber algo de Batch, tal vez te sirva leer la primera y segunda parte. Si sigo asà tendré que escribir un [...]
[...] es la cuarta parte de otros tres tutoriales más. Ve aquà El primero, El Segundo y El tercero. En el tutorial pasado vimos como ejecutar acciones en gran cantidad de [...]
[...] es la segunda parte de mi tip Programación Batch con archivos .bat, asà que te recomiendo leerlo si es que no estas instruido en el [...]
Muy buen tutorial!!!
Que bueno que te guste ;D
hola mira tengo windows xp profecional e untento hacer lo de abrir procesos y solo me sale con internet explorer me podes decir como hagoa para habrir programas como el exel, el word,y otros conocidos
Bueno, pues ya comenzamos aqui, bastante interesante. De ser sincero siempre pense que “batch” era un lenguaje de programacion, pero resulta que es “DOS”, entonces que tipo de le nguaje maneja ?? y ahora me viene a la mente, que tanto se puede programar en “batch” o si unicamente es para ejecutar algunas ordenes.
No puedo esperar, ya guarde el tutorial, no puedo esperar a seguir, pero por hoy es tarde ( 4:00 am), la “meme” me llama !!!
Gracias por el tutorial !
khourt !
Una duda me acaba de surgir, es importante el uso de mayusculas y minusculas o es indistinto ??
ya cree algunos batch usan mayusculas y minusculas, pero deseo saber, que tal si algun dia tengo problemas con esto ??
Gracias
Otra duda… upppps !!!
Las variables no se tienen que declarar si son texto, numero algo asi como integer, doble, booleanos, etc ??
Pues si, Batch es DOS, pero tiene tambien utilidades que explico en el tutorial.
Respecto a las mayusculas. Pues en funciones a veces afecta y a veces no. Para saber sobre eso puedes escribir FUNCION /? para saber mas sobre ella.
No, las variables no se especifican que tipo de datos son.
Respecto a la duda de Fran, pues algunos programas debes saber donde es que estan guardados. Por ejemplo si el programa esta en C:\Programas\Miprograma.exe
deberas usar
start C:\Programas\Miprograma.exe archivo.ext
Suerte para ambos.
Que tal Javier !! no inventes, me cae que esto esta muy bueno, pero tengo una duda mas, se puede agregar “cometarios” como en java que con “//” para indicar detalles y que no afecten la programacion, o como en visual que se usa es apostrofo ( ‘ ).
No invetes, me cae que que bueno esta esto !! ja ja ja!!!
No estoy seguro, y creo que no. Por que como es un DOS, no creo que se haya pensado que fuese necesario comentar. (No estoy 100% seguro, tal vez si averiguas, me sorprendas)
… bueno, pues ni modo Javier, me pusiste a buscar. Y si encontré algo sobre como agregar comentarios, asà que lo agrego a tu tutorial, pues creo que si es de importancia.
Primero, la importancia de los comentarios es que al programar en algunas ocasiones nos encontraremos con la necesidad de arreglar algún error, modificar el Batch (o el programa, cuando utilicemos algún otro lenguaje de programación) para su reutilización, también cuando se trabaja en grupo y se comparte un código para evitar que los usuarios tengan que descifrar todo el contenido de nuevo y ahorrar tiempo, o simplemente para tener orden en nuestro código. El comentario debe describir (preferentemente) de manera corta y precisa la parte de código.
Encontré 3 modos de hacer comentarios al escribir un Batch:
1.- Escribir “REM” al inicio de la linea que sera el comentario. Este se considera el comentario oficial.
2.- Insertar 2 veces los los puntos ” :: ” y luego el comentario. Esta forma hace que el interprete considere la linea como una etiqueta errónea y no leerá después del segundo caracter.
3.- Esta forma de hacer comentarios, sirve cuando queremos declarar el significado de una linea y se escribe después de la linea de comando, encerrando entre signos de tanto por ciento ” % … % ” el comentario. Por lo que entiendo, pedimos el valor de una variable que no existe, y por eso no devuelve nada el interprete. Pero creo que por lo mismo, este modo podrÃa traer problemas después debido a su naturaleza. Aquà si espero que alguien aclare el punto, yo lo ocupe en algún ejemplo, pero como es un Batch muy pequeño, no se si traerá problemas en Batch mas extensos y con funciones mas especificas.
Bueno, pues espero que esto sea de ayuda. Dejo un ejemplo de como utilice los comentarios.
Este es un Batch que hice utilizando lo aprendido en la primera y segunda parte. Compara el valor de un numero X (que el usuario da) con el numero 10.
@echo off
rem Declarecion de Variables
Set Valor1=0
Set Valor2=10
rem Etiqueta del principio del secuencia
:inicio
Set /p valor1= Valor a comparar:
If %valor1% LSS %valor2% echo Tu numero es menor a 10. Tu pierdes !!!
If %valor1% EQU %valor2% echo Tu numero es igual a 10. Intenta de nuevo !!!
If %valor1% GTR %valor2% echo Ganaste !!!
set valor1=0
Echo.
Echo.
echo. % uno %
:: Regreso
goto :inicio
Bueno, pues yo ocupo el Notepad++ ( http://notepad-plus.sourceforge.net/es/site.htm ) en vez de el block de notas de Windows por que ayuda con un código de colores a la hora de programar (y en varios lenguajes de programación, solo hay que indicar el lenguaje a utilizar) y esto hace mas fácil la escritura del código. Cuenta con mas cosas, pero tampoco lo eh revisado de lleno. No se si es el mejor, y si alguien maneja algo parecido pues seria bueno ver sugerencias. Por cierto también hay una versión portable (no necesita de instalación). Suerte a todos.
Alguien sabe como puedo crear un batch el cal me consulte por una tecla en especifico
por ejemplo
presion F2 o C para continuar
si presiona otra cosa que salga
no cacho mucho se que es facil pero no tengo la sintaxis