Está en la página 1de 9

Manual bsico de programacin de ficheros Batch

Un fichero batch es un archivo de procesamiento por lote. Se trata de archivos de texto


sin formato, guardados con la extensin *.bat que contienen un conjunto de comandos
DOS. Cuando se ejecuta este archivo bat, los comandos son ejecutados en grupo, de
forma secuencial, permitiendo automatizar diversas tareas.
Cualquier comando DOS puede ser utilizado en un archivo batch.
Decir que Batch que no es un Lenguaje de Programacin sino un archivo de cdigo que
contiene comandos de la shell Windows, MS-DOS, que se ejecuta desde cmd.exe

Hola Mundo en Batch

Comenzaremos creando un simple y clsico "Hola Mundo", escribiendo en un archivo de


texto el siguiente cdigo:

@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". Analicemos cada apartado:

echo:

Imprime el texto que viene despus (el que le pasamos como parmetro), que en este
caso es "Hola Mundo". Echo significa eco, por lo mismo "@echo off" elimina el eco, la
repeticin de la ruta en la que nos encontramos en cada lnea cdigo.

pause:

Como bien se lee, pausa la ejecucin del cdigo. Adems muestra el texto "Presione una
tecla para continuar"

exit:

Cierra la ventana de comandos. sin esta linea.

1
Otro cdigo ejemplo de fichero bat:

@echo off
echo Hola, Cuando pulses la tecla se borrara el contenido y cambiara por otro.
pause
cls
echo Ves?
pause
exit

Si quisiesemos averiguar ms sobre las funciones, o conocer algunas nuevas podemos


escribir en el Shell el nombre del comando seguido de /? y aparecer toda la
informacin necesaria.

Podemos poner en prctica esto de la siguiente manera creando el fichero bat,


ayudacopy.bat:

echo off

cls

copy /?

exit

El siguiente cdigo que copie un archivo, luego lo mueva a otro directorio, borre el original
y vuelva a copiar el copiado. En la carpeta donde crears el archivo .bat crea un archivo
de texto llamado copiame.txt. En l, escribe lo que quieras.

@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

2
Lo que ha hecho la cadena de instrucciones es ms o menos lo siguiente: Primero
apagamos el eco, luego imprimimos en pantalla "Hola, Copiaremos un archivo"
Pausamos el intrprete para que no siga de largo. A continuacin, copiamos el archivo
"Copiame.txt" y su copia se llamar "copiado.txt". La movemos a la carpeta raz del disco
C, y eliminamos el original.

Por ultimo cambiamos de directorio al disco C, copiamos la copia y cerramos el Batch.

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 vaca del archivo que prosiga.

Hagamos la prueba:

Cdigo :

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

Aqu veremos como personalizarlo un poco.

COLOR:

Con la funcin 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 /?

3
TITLE:

Para cambiar el ttulo de la barra de tareas solo escribe:


Title Loquequierascomotitulo

Pause Personalizado:

Pues si escribes "pause>nul" no aparecer ni un texto. Entonces si anteponemos un


mensaje, quedara as.

Cdigo :

echo Aprieta cualquier tecla para seguir


pause>nul

Adems puedes jugar con los caracteres. Aqu un ejemplo, donde cambi los colores y
jugu con los caracteres y personalic el pause:
El cdigo 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

El resultado es ms o menos

4
Cabe mencionar que echo. (echo seguido de un punto)sirve para saltarse una lnea.

Matando Procesos:

Si lo haces se abre el Administrador de tarea. En la pestaa procesos salen algunos


procesos que estn andando en tu pc, hacindoles clics y apretando "terminar proceso" lo
puedes acabar.

Con batch eso es muy fcil, se usa la funcin:

Taskkill (No funciona en todos los pc, para ver si esta disponible escribe taskkill /?)
Su sintaxis es:

taskkill /f /im wmplayer.exe

Si lo ejecutas y tienes el Reproductor de Windows Media abierto, este se cerrar.

ABRIENDO PROCESOS:

Para abrir procesos se usa la funcin Start.

Ejemplo1:

start wmplayer.exe

Se abrir el Reproductor de Msica

Ejemplo2:

start www.google.es

VARIABLES:

Ahora aprendamos a declarar variables. Para crear una se escribe:

Cdigo :

set NOMBREVARIABLE = VALOR

Para llamarla debemos escribir su nombre entre los signos %%

5
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 dinmica, 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. Tambin podemos multiplicarlas, sumarlas, etc (+,-,*,/) ... con /a:

set numero1=2
ser numero2=43
set /a suma= %numero1% + %numero2%
echo %suma%
pause
exit

Uso de etiquetas

La lectura de los cdigos Batch se leen de una manera lineal, pero existe una forma para
que el Batch se salte lineas, o vuelva a alguna anterior. Esto se logra con Etiquetas y la
funcin goto. Para crear una etiqueta solo debemos escribir:

:nombreEtiqueta

6
De esta manera el GOTO funciona escribiendo GOTO seguido del nombre de la etiqueta,
como vemos en el siguiente ejemplo.

@echo off
goto :mietiqueta
echo Por que me saltan?
:MiEtiqueta
echo Hola, esta es la etiqueta y nos saltamos una parte del codigo.
pause>nul
exit

Condicionales:

IF

El condicional que veremos el ms usado: IF. Se puede ocupar para comparar, cadenas,
nmeros o para saber si existen archivos.

if %cadena1% == %cadena2% OrdenAEjecutar

Que se podra leer as: Si cadena1 es igual a Cadena2 ejecutemos la OrdenAEjecutar.

Tambin existe el NOT para ver si no son iguales.

if not %cadena1%== %cadena2% ejecutarAccion

Para saber si un archivo existe, se usa:

if exist "NombreDelArchivo" AccionAEjecutar

o tambin para ver si NO existe:

if not exist "NombreDelArchivo" AccionAEjecutar

No solo se puede ocupar el signo == para hacer comparaciones.

EQU, que es el equivalente a ==

NEQ, Sirve para cuando queremos ver Desigualdad.

LSS, Para verificar si el numero es Menor

LEQ, Para verificar si es menor o igual.

GTR, Si es mayor

GEQ, Si es Mayor e igual.

7
Un ejemplo de esto seria:

if 5 GTR 4 echo Hola

FOR:
Nos sirve para repetir un comando varias veces, en distintas variables. Un ejemplo, es
este:

for /L %%i IN (0,1,21) DO (echo %%i)

En donde /L es para especificar que nuestro for se basara en un conteo de nmeros.


Aqu se repetir un echo, que imprimir nmeros del 0 al 21.

%%i sera el nombre de la variable que almacenara datos

in (0,1,21) aqu especificamos que se repetir del 0 al 1 y del 1 al 21.

do (echo %%i) es la funcin que se ejecutara en cada repeticin del comando, en este
caso un echo que imprimir la variable.

Batch en algunos casos SI reconoce entre maysculas y minsculas, como en el caso de


la variable %%i si esta se llamara %%I no seria reconocida como la misma.

Otro uso que puede ser aplicado en el FOR es el listado de carpetas o archivos, como
veremos a continuacin:

Listado de archivos:

@echo off
FOR %%x in (a*) DO echo %%x
pause

Este cdigo, listara todos los archivos que comienzan con A. Por que? * (asterisco) es
un signo comodn, por lo cual al poner a*, estamos diciendo cualquier archivo que tenga
una A delante y luego cualquier cosa. Otro ejemplo del uso de comodn, es listar archivos
con extensin comn como seria este:

@echo off
FOR %%x in (*.jpg) DO echo %%x
pause

Aqui nos estaria listando todos los archivos que tengan la extensin .jpg

8
Listado de Carpetas:

FOR /D %%x in (a*) DO echo %%x

Es casi lo mismo anterior, tan solo que al indicar /D solo se aplica a directorios.

Si quisiramos que se listaran los directorios, juntos a los directorios que tienen estos
dentro se ocupa /R

FOR /R /D %%x in (a*) DO echo %%x

y si quisiramos listar todos los documentos que estn dentro de una carpeta contando
los que estn dentro de carpetas se ocupa solamente /R (Sin /D)

FOR /R %%x in (a*) DO echo %%x

También podría gustarte