Introducción al Batch

En esta entrada vamos a tratar la programación batch des de cero, con ejemplos que funcionan perfectamente (a diferencia de otros blogs, que no siempre es así).

¿Que son los archivos batch?

Los archivos Batch o bat son archivos de procesamiento por lotes, son solo de texto y la extensión es .bat. Contiene un conjunto de comandos de DOS y no requiere un compilador. Se ejecutan de forma secuencial, del principio al final (de arriba a abajo).

Aclaración: Cualquier comando en DOS puede usar Batch
Algunos Windows permiten la extensión .cmd

¿Que puedo hacer con un Batch?

Muchas cosas, cualquier tipo de cálculo, programar alguna tarea, instalar programas, modificar el registro, eliminar virus, modificar aspectos del sistema operativo… Casi cualquier cosa que os imaginéis.

¿Cómo se escribe un archivo Batch?

Para escribir un archivo bach deberemos de abrir el bloc de notas y escribir los comandos, hasta aquí todo normal. A continuación iremos a archivo/guardar como y pondremos el nombre-que-deseemos.bat y la extensión seleccionaremos todos los ficheros.

Comandos básicos

@echo off –> Sirve para evitar que nos muestre los “comandos” en pantalla, algunas lineas de código.
echo –> me muestra el mensaje en pantalla (lo que sea), se debe poner echo y después lo que queramos mostrar
pause –> el programa se detiene pide una confirmación para continuar, es decir una tecla
exit –> el programa finaliza y se cierra

¿Que evitaremos ver con @echo off?

Si ponemos al principio de nuestro programa @echo off evitaremos que se nos muestre los comandos de a continuación. De todos modos si no lo ponemos nuestro “programa” funciona igual.

Title –> Establece el título de nuestra ventana

Color –>Podemos cambiar el color de la ventana y/o de la letra.

Podemos cambiar:

5 -> indica que queremos cambiar el color de la ventana
E -> indica que queremos cambiar el color de las letras

Codigo de colores:

0 = Negro
1 = Azul
2 = Verde
3 = Aguamarina
4 = Rojo
5 = Púrpura
6 = Amarillo
7 = Blanco
8 = Gris
9 = Azul claro
A = Verde claro
B = Aguamarina clara
C = Rojo claro
D = Púrpura claro
E = Amarillo claro
F = Blanco brillante

echo –> Muestra un mensaje en la pantalla DOS (sin punto)

echo. –> Sirve para saltar una linea en la pantalla (con punto)

rem –> Solo se muestra el texto que pongamos después del código en el modo edición. Si ejecutamos el programa veremos que no nos muestra los apuntes. Útil para expliaca que hace cada cosa.

del –> Elimina archivos. Pones el comando y luego la ruta del archivo y lo elimina. Ej del c:\para-eliminar.txt

start –> Sirve para abrir cualquier cosa (con las claves del registro no funciona). Solo hace falta poner start y el nombre del programa, la pagina web, el documento… Tal y como si lo abrieramos con el ejecutador (tecla win+r). Para modificar el registro regedit.exe ruta-del-fichero.reg, nos pedirá confirmación.

taskkill –> Termina los procesos. Se pone: taskkill -im nombre-del-proceso.exe si es por ejemplo un documento de texto que no lo hemos guarado nos dirá si lo deseamos guardar. Pero si no queremos que nos salga esto podemos forzar el cierre mediante “-f” (sin comillas) al final de la linea y separado por un espacio.

pause –> para el programa y precisa que se pulse una tecla para continuar con la ejecución

exit –> Forzamos la finalización del código sin importar si queda código o no

cls –> Sirve para borrar el código que se nos muestra en la ejecución, solo el mostrado. No sirve para el consiguiente.

Variables

Las variables es un lugar donde podemos almacenar distintos tipos de datos los cuales podremos recurrir a lo largo del programa.

Detalles: El nombre de la variable será la combinación de letras y números al que nos referiremos a nuestro programa para obtener el valor. El valor es el contenido de la variable.

Para recurrir a la variable deberemos de poner el nombre de la variable entre %%. Es decir si queremos recurrir a: variable1, deberemos de poner %variable1%. Para mostrar el valor en pantalla deberemos poner echo delante quedando echo %variable1%.

set –> Seria el nombre para crear una variable cualquiera no modificable excepto con el código fuente.

Se usa: set nombre-variable=valor-variable
ejemplo: set hola=bien venido
Dónde hola es el nombre y bien venido el valor

Las siguientes variables el usuario deberá de poner el valor, pero operarán del mismo modo.

set /p –> es una variable que nos pedirá que ingresemos el valor, pero no nos realizará operaciones con él, solo nos mostrará la fórmula con los valores.

Se usa: set /p nombre-variable=lo que queramos:
ejemplo: set /p nombre=pon tu nombre
set /p es la orden, nombre es el nombre de la variable y pon tu nombre lo que mostramos al usuario.

set /a –> Nos permite operar con números, las letras equivalen a 0, y el resultado no muestra decimales, por lo tanto si es un 3,9 muestra 3.

Se usa:

set /p nota1=Escribe tu nota:
set /p nota2=Escribe tu segunda nota:
set /a promedio=(%nota1%+%nota2%)/2
echo.
echo.
echo Tu promedio es: %promedio%
pause
exit

Por lo tanto hemos de poner set /a cuando vaiamos a realizar la operación no para recoger los datos.

Condicionales

Los condicionales son aquel código que precisa de un antecedente para realizar una acción. Si está nublado lloverá, sería un ejemplo cuotidiano.

Se ha de poner un condicional, el condicional funciona de este modo.

if %var% LEQ 5 (echo Estas desaprobado) else (echo Aprobaste el Curso)

El if introduce el condicional, %var% recurre a la variable, LEQ 5 dice cual es el margen, (echo Estas desaprobado) nos muestra si el resultado es inferior al 5 en este caso, else es lo que nos separa las condiciones (echo Aprobaste el Curso) es si es igual o superior al 5 en este caso.

Código para saber si estamos aprobados o no

@echo off
set /p nota1=Escribe tu primera nota:
set /p nota2=Escribe tu segunda nota:
set /a promedio=(%nota1%+%nota2%)/2
echo.
if %promedio% LEQ 5 (echo Estas desaprobado) else (echo Aprobaste el Curso)
pause
exit

Algunos comandos que nos permiten sustituir LEQ por diferentes formas de actuar.

== Si son iguales
LSS Si es menor que…
GTR Si es mayor que…
LEQ Si es menor o igual que…
GTR Si es mayor o igual que…

Etiquetas o menús

Que haga dependerá de si el valor es correcto o no, dependiendo de este factor el programa se saltara una lineas de código u otras.

Se usa como un condicional pero la diferencia es que si pasa la primera condición accede al apartado que tu le indiques y sino pasa al otro apartado.

ejemplo:

@echo off
set /p usuario=Ingrese su nombre de Usuario:
if %usuario%==admin (goto sistema) else (goto error)

:error
cls
echo Acceso denegado
echo Lo sentimos, no esta autorizado para ingresar en el sistema
pause
exit
:sistema
cls
echo.
echo ..::[Has entrado]::..
pause
exit

La explicación es que si se introduce el condicional pero las condiciones son goto xxxx irá el lugar con dicho nombre. Como le hemos puesto goto sistema si pone admin cuando lo ponga irá a la linea de :sistema. Si por lo contrario no lo pone irá a la linea de :error. Notemos que en las etiquetas ponemos “:” (sin comas) antes de la etiqueta. Si quitamos el exit del :error después de ingresar con un nombre que no sea admin nos entrará. Los nombres pueden ser los que queramos solo debemos de usar los “:“.

Si ponemos un :login al inicio i al final de la etiqueta :error no ponemos un exit sinó un goto :login cada vez que no pongamos admin nos volverá al inicio.

Comandos adicionales

Estos tipos de comandos se pueden añadir detrás de diferentes ordenes para modificar su forma de actuar y así variar el proceso sin cambiar el final. Son útiles para mejorar el trabajo. Va después de la orden separado por un espacio en ambos lados. Cuando los leáis lo entenderéis. Usaermos el comando eliminar pero sirve para muchos otros, solo se trata de ir investigando.

del p/ ruta-del-archivo -> este comando nos pide confirmación al borrar los archivos.

del f/ ruta-del-archivo -> Aquí se nos forzará a borrar el archivo, si está protegido nos mostrará el error: Acceso denegado.

del s/ ruta-del-directorio -> Borra un directorio entero con todos los archivos que estén dentro. Nos pedirá confirmación.

del q/ ruta-del-archivo -> Nos elimina los archivos de forma silenciosa, no pide confirmación ni nada.

Se pueden combinar varios de estos comandos adicionales para conseguir una mejor manera de desenvolupamiento.

Este tutorial/manual nos enseña algunos comandos muy básicos, si les ha gustado comenten.

5 comentarios »

  1. asdsadasd said

    una garcha… solo para lammers

  2. etnos said

    Como dice en el titulo es introduccion.
    Y no creo que sea para lammers. Si tienes algo mejor muestralo.
    salu2

  3. Andres Felipe Trujillo Madrigal said

    Muy buen trabajo… soy un Batchc0der y yo creo q este Script no es para lammers este tema merece mucho estudio… te invito a mi blog trato este mismo tema !!! un saludo

  4. etnos said

    Gracias por el soporte Andres Felipe Trujillo Madrigal gente como tu me ayuda a seguir publicando.
    PD: Lo siento pero no tienes ningún enlace a tu blog.
    Salu2

  5. MozartCracker said

    Hola !

    Muy buen aporte !
    Nuevo o no,actual o como quieras, es un principio y por aqui se puede hacer muchisimas cosas que cualquier puede caer, asi como tambien podemos impresionar.

    El que diga que sabe mucho es un mentiroso !

    Un saludo ! Felicitaciones !

RSS feed for comments on this post · TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: