Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Desconectado
Sexo:
Mensajes: 99
Salu2 a todos!. En este tuto les hablaré de los archivos batch vulgarmente conocidos como
"bacheros".
OJO: Este es un manual de introduccion y no un manual para expertos.
Nota: He visto muchas webs en las que tambien tratan este tema, todas iguales. Hasta los
errores han sido copiados entre ellas mismas. Las sintaxis malas, y los codigos ejemplos
muchos de ellos no funcionan. Es por esa razon de esta aclaracion ya que TODOS los
ejemplos que pongo aqui funcionan perfectamente, han sido creados desde 0 y probados, de
lo contrario no lo pondria. Es todo.
¿Archivos Batch?
Código:
@echo off
echo Programar en Bat desde 0
pause
exit
@echo off --> se establece al echo como off para que no muestre los comandos en pantalla
echo Programar en Bat desde 0 --> me muestra el mensaje en pantalla (lo que sea)
pause --> el programa se detiene en esa linea y pide una confirmacion para continuar
exit --> luego de confirmar, el programa finaliza.
I COMANDOS BASICOS
@echo off
Si ponemos esta linea al inicio de nuestros programas evitaremos que se visualizen los
comandos que vienen a continuacion. Aún si no lo ponemos, nuestro programa funcionara
title
Establece el titulo a la ventana de nuestro programa
Código:
title Mi Programa en Bat x 0zK4Rr
color
Con este comando podemos establecer el color de la ventana de nuestro programa.
Código:
color 5E
Donde:
5 --> indica el color de la ventana
E --> indica 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 claro
C = Rojo claro
D = Púrpura claro
E = Amarillo claro
F = Blanco brillante
echo
Muestra un mensaje (cadena) en pantalla
Código:
echo Mi Primer Programa en Bat
echo.
Sirve para insertar una linea vacia al programa (salto de línea)
Código:
echo Mi Primer Programa en Bat
echo.
echo DragonJar.us
rem
Para explicar los codigos. O tambien utilizado para poner comentarios. No se muestra en
pantalla, solo en el modo de edición.
Código:
echo Mi Primer Programa en Bat
rem se ha mostrado un mensaje
echo.
rem he insertado una linea vacia
echo DragonJar.us
rem he mostrado un segundo mensaje
exit
Ya se imaginarán; con este comando forzamos la finalizacion del programa, sin importar el
codigo restante.
cls
Sirve para limpiar, quitar el contenido de la pantalla de nuestro programa; como si el
programa recien empeza (la pantalla limpia). Donde pongas este comando, limpiará el
resultado del codigo ejecutado anteriormente (no afecta al codigo que viene en las lineas
siguientes).
Código:
@echo off
echo.
echo Hola
echo.
echo Este es un mensaje
echo.
echo que sera borrado
echo.
echo con el comando cls
echo.
pause
cls
echo Este es otro mensaje
echo.
pause
exit
II VARIABLES
set
Se utiliza este comando para crear una variable cualquiera
Código:
set minombre=Yesik
Donde:
minombre es el nombre de la variable (puede cualquier otro nombre q creas conveniente)
Yesik es contenido de la variable creada
Nota: Para hacer referencia a cualquier variable y/o utilizar su contenido, hay q llamarlas
asi:
%variable%
Hasta ahora todo bien creando y utilizando las variables. Pero, ¿que pasa si el valor de la
variable no conocemos? (por ejm la fecha de nacimiento, para calcular su edad, horoscopo,
etc). Entonces tiene que ser el mismo usuario quien indique el valor de la variable para
luego el programa hacer los calculos necesarios.
set /p
Mediante este comando, nuestro programa creará una variable y a su vez nos pedirá que
ingresemos su valor respectivo. (Que bonito!)
Código:
@echo off
set /p nombre=Escribe tu nombre:
set /p apellido=Escribe tu apellido:
set /p pais=Escribe tu pais:
echo.
echo.
echo Te llamas %nombre% %apellido% y eres de %pais%
pause
exit
Hasta ahora hemos tratado a las variables con textos (para los que ya conocen un poco, con
cadenas). No podemos utilizar esos valores para hacer operaciones. Un ejm:
Código:
@echo off
set /p nota1=Escribe tu nota1:
set /p nota2=Escribe tu nota2:
set promedio=(%nota1%+%nota2%)/2
echo.
echo.
echo Tu promedio es: %promedio%
pause
exit
Si se fijan, nuestro programa no es capaz de operar, sólo muestra lo que escribimos (joeR!).
Necesitamos hacer algo. Veamos el siguiente codigo.
set /a
Como ya se imaginarán este comando podemos crear y realizar calculos (operaciones
matematicas) con dichas variables.
Mejorando el codigo anterior, tendremos lo siguiente:
Código:
@echo off
set /p nota1=Escribe tu nota1:
set /p nota2=Escribe tu nota2:
set /a promedio=(%nota1%+%nota2%)/2
echo.
echo.
echo Tu promedio es: %promedio%
pause
exit
III CONDICIONALES
Podemos traducirlo de la siguiente manera: "Si sucede esto, has esto"; o tambien: "Si pasa
esto, has esto, y si no, haz esto otro". Veamos un ejemplo:
Código:
@echo off
set /p nota1=Escribe tu nota1:
set /p nota2=Escribe tu nota2:
set /a promedio=(%nota1%+%nota2%)/2
echo.
if %promedio% LEQ 10 (echo Estas desaprobado) else (echo Aprobaste el
Curso)
pause
exit
Detalle:
En el ejemplo utilice LEQ para hacer la comparacion (si es menor o gual). Podemos
reemplazar ese LEQ y usar cualquiera de estas otras (de acuerdo a nuestras necesidades):
IV MENUS (ETIQUETAS)
:error
cls
echo Acceso denegado
echo Lo sentimos, usted no esta autorizado a ingresar al sistema
pause
exit
:sistema
cls
echo.
echo ..::[Bienvenido al Sistema]::..
pause
exit
Como explique inicialmente, Batch es un lenguaje secuencial. Se ejecutan las lineas una a
una, de arriba a abajo. En nuestro ejemplo al iniciar el programa nos solicita el ingreso del
nombre de usuario. A continuacion verifica si el usuario es "admin". De ser cierto, el
programa dara un salto a la etiqueta ":sistema" En caso contrario, hara el salto a la etiqueta
":error"
Cabe mencionar que el codigo que contenga cada etiqueta se ejecutara "sólo" cuando se
haga referencia a dicha etiqueta. Osea el programa nunca ejecutara el codigo que hay
dentro de la etiqueta :sistema si es que nunca ha sido llamada (goto sistema).
:error
echo Usuario incorrecto. Intente de nuevo
echo.
echo.
goto login
:sistema
echo.
echo ..::[Bienvenido al Sistema]::..
pause
exit
Ahora si! xD Agrege una etiqueta al inicio (:login) De esta manera al ingresar un usuario
incorrecto, muestra un mensaje de error y nos devuelve a la etiqueta :login en donde nos
pide ingresar un usuario. Osea el programa regresara siempre a pedirnos el usuario hasta
que ingresemos el usuario correcto.
V VARIOS
Bueno x hoy ya esta bueno. Aqui pongo algunos comandos basicos para utilizar en nuestros
archivos Bat.
del
Para eliminar archivos. Solo especificas la ruta del archivo y ya! (Nota: no va a la papelera
omG!)
Código:
@echo off
del C:\prueba.txt
A este comando podemos indicarle algunos parametros que pueden mejorar nuestra tarea:
/p
Si le agregamos este comando nos pedira confirmacion antes de eliminar (Si no se pone el
archivo es eliminado sin confirmacion)
Código:
@echo off
del /p C:\prueba.txt
/f
Elimina archivos a la fuerza, incluyendo aquellos que estan en "Solo lectura". Si no
ponemos este parametro y tratamos de eliminar un archivo protegido nos devolvera
"Acceso Denegado"
Código:
@echo off
del /f C:\prueba.txt
/s
Limpia las carpetas. Elimina todos los "archivos" que existan dentro de dicha carpeta y
ademas de las subcarpetas existentes. Pide confirmacion de eliminacion.
Código:
@echo off
del /s C:\prueba
pause
/q
Elimina archivos de forma silencionsa, no pide confirmacion ni nada.
Podemos combinar este ultimo parametro con el anterior, de esta forma vaciaria la carpetay
subcarpetas sin pedirnos confirmacion:
Código:
@echo off
del /q /s C:\prueba
pause
start
Abre un archivo, programa pagina web, etc.
Código:
@echo off
start C:\archivo.doc
start mspaint
start http://www.google.com.pe
taskkill
Para matar, terminar un proceso.
Código:
@echo off
taskkill -im mspaint.exe
taskkill -im winword.exe
taskkill -im iexplore.exe
Obs: Si tratamos de matar al proceso winword (Microsoft Word) pero tenemos abierto un
documento que aun no hemos guardado. Nos saldrá una ventana que nos preguntara si
deseamos guardar el archivo.
Despedida: