Sunteți pe pagina 1din 10

Programacin avanzada de archivos en

lotes .bat
Por JaLeRu el 05 de Diciembre de 2007 con 209,732 visitas

Tecnologia y otros Otros tutoriales por JaLeRu.



Esta es la segunda parte de mi tip Programacin Batch con archivos .bat, as que
te recomiendo leerlo si es que no estas instruido en el tema.

A continuacin veremos los siguientes temas:
Uso de etiquetas
Condicionales
Creacin de Mens
Apagado y Reiniciado de Pc
Leer archivos externos
Insertar al Registro
Otras cosas tiles

Uso de etiquetas

Como bien sabemos 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:
Cdigo :
:nombreEtiqueta

Dos punto (:) seguido del nombre que le daremos a la etiqueta. De esta manera
el GOTO funciona escribiendo

GOTO seguido del nombre de la etiqueta, como vemos en el siguiente ejemplo.
Cdigo :
@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


Dato Interesante:
En Batch las Maysculas y Minsculas no se diferencian.
Condicionales:

El primer condicional que veremos el ms usado.
IF:
Se puede ocupar para comparar, cadenas, nmeros o para saber si existen
archivos.
Ejemplo de sintaxis, if %cadena1% == %cadena2% OrdenAEjecutar
Que se podra leer de la siguiente manera. Si cadena1 es igual a Cadena2
ejecutemos la Orden 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.

Un ejemplo de esto seria:
Cdigo :
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) Esto 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:
Cdigo :
@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:
Cdigo :
@echo off
FOR %%x in (*.jpg) DO echo %%x
pause

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

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

Con esto creo que tenemos lo bsico, y ms importante de los condicionales.
Talvez otro claber se anime a profundizar ms en el tema.
Creacin de Mens:

Como ya vimos Condicionales y Etiquetas les enseare una manera de hacer
Mens.
Comenzaramos indicando las instrucciones y las opciones, de esta manera:
Cdigo :
@echo off
:Menu
cls
echo Seleccione su opcion tecleando el numero respectivo.
echo.
echo 1. Primera Opcion
echo 2. Segunda Opcion
echo 3. Salir

Luego para seguir ocuparamos esto:
Cdigo :
set /p var=
if %var%==1 goto :Primero
if %var%==2 goto :Segundo
if %var%==3 goto exit
if %var% GTR 3 echo Error
goto :Menu

Con esto damos una variable en la que se guardara el numero insertado para
luego ser verificado por los condicionales, si el numero es mayor que 3 nos
avisara que no existe esa opcin. Tambin al principio cree una etiqueta para que
se pueda volver

al men y un "cls" para limpiar la pantalla.
Para terminar creamos las respectivas etiquetas.
Cdigo :
:Primero
cls
color a
Echo Esta es la Primera Opcion
Echo Precione una tecla para volver al menu
Pause>Nul
goto :Menu
:Segundo
cls
color 1a
Echo Esta es la Segunda Opcion
Echo Precione una tecla para volver al menu
Pause>Nul
goto :Menu

Quedando para terminar nuestro codigo as:
Cdigo :
@echo off
:Menu
cls
echo Seleccione su opcion tecleando el numero respectivo.
echo.
echo 1. Primera Opcion
echo 2. Segunda Opcion
echo 3. Salir
set /p var=
if %var%==1 goto :Primero
if %var%==2 goto :Segundo
if %var%==3 goto exit
if %var% GTR 3 echo Error
goto :Menu
:Primero
cls
color a
Echo Esta es la Primera Opcion
Echo Precione una tecla para volver al menu
Pause>Nul
goto :Menu
:Segundo
cls
color 1a
Echo Esta es la Segunda Opcion
Echo Precione una tecla para volver al menu
Pause>Nul
goto :Menu

Bueno, con eso les basta para imaginarse como crear sus mens personales.
Como vieron puede cada seccin tener su color, incluso puedes cambiar la barra
de titulo.
Ve probando, no pierdes nada.
Apagado y Reiniciado de Pc:

Una cosa muy interesante que puedes hacer con Batch es Apagar y Reiniciar tu
Pc, incluso programarlo para que apague a la hora que desees.
Es notablemente fcil.
se ocupa de la siguiente manera el apagado.
shutdown -s -t Tiempo -c "Comentario"
donde -s significa que lo apagaremos, -t debe ir seguido de los segundos que
demorara apagar. En windos XP mostrara un contador, con el comentario que va
luego de -c, pero en Windows Vista no abra ni un contador, solamente saldr una
alerta con el Comentario, que ni siquiera es obligatorio.
Bueno, de seguro quieres hacer la prueba. La puedes hacer pero antes de eso te
recomiendo que leas lo siguiente.
Puedes cancelar el apagado (Antes de que el contador termine) solamente
escribiendo shutdown -a ya sea en un archivo de texto con extensin bat, como
en el mismo Shell.
Entonces, pues has la prueba
Cdigo :
shutdown -s -t 999999 -c "Esto se esta apagando"

Tendrs suficiente tiempo para ejecutar el siguiente cdigo. (11 das )
Cdigo :
shutdown -a

Con esto ya probamos los dos y podemos ser felices.
Ok, si en vez de ocupar -s usas -r el PC se reiniciara.
Tambin puedes forzar el cierre de los programas, para que no de tiempo de
guardar nada. Tan solo ocupando -f
Un ejemplo de un Pc, que se Apaga Forzosamente y que puede daar el pc y
luego se reinicia es este:
Cdigo :
shutdown -r -f -t 0 -c "Bye"

(No lo recomiendo probar en tu pc, Ya que apaga el pc en 0 segundos sin
preguntar nada. )
Para programar un apagado lo veremos al final en los Datos Extras, ya que con la
funcin AT puedes programar el apagado.

Leer archivos externos:

Para leer un archivo externo con Batch, como un archivo de texto por ejemplo. Se
usa el siguiente cdigo:
Cdigo :
type "NombreDelArchivo.txt"

Simple no?
Insertar al Registro:

Insertar al registro tu Batch puede ser muy til, la verdad yo no entiendo mucho
del registro pero le un poco y aqu tienen un ejemplo que se encuentra a ser
sincero en muchas web. Donde aremos que nuestro batch se ejecute con el
Sistema.
Cdigo :
REG ADD
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\R
un /v MIBATCH.bat /t REG_SZ /d

C:\MIBATCH.bat


Con la funcin REG ADD Agregamos algo al registro. Con otros comando
podemos borrar.
Lo que sigue es la "Direccin" de donde insertaremos el registro que en este caso
sera para que nuestro batch se ejecute al iniciar Sesin.
En medio de toda la direccin se puede leer MIBATCH.bat yo puse el nombre del
Batch pero tambin se puede poner cualquier otra cosa. Ms adelante donde dice
C:\MIBATCH.bat, es la direccin completa de donde esta nuestro Batch.
Con solo esta linea estamos listos. Haz la prueba!
Otras cosas tiles:

Para terminar hablare de pequeas funciones que pueden ser de utilidad.

Msg
Esta funcin tiene otras utilidades, pero les enseare esta que no funciona en
todos los PC.
Sirve para abrir una alerta con un mensaje su utilizacin es la siguiente:
Cdigo :
msg * EsteEsMiMensaje


AT
Esta es una de las que ms me gusta, es para programar alguna accin a cierta
hora.
Ejemplo:
Cdigo :
At 20:00 msg * Son Las 8 de la noche

Con esto a las 20:00 nos aparecer un mensaje que nos dir que son las 8 de la
Noche.
Tambin puedes programar un apagado o cualquier Cosa.
Si la hora que das ya paso, se tomara como para el da siguiente.

Creo que he terminado, me cost un poco. Ojala no me haya faltado nada.
Disfrtenlo y seria bueno que los Clabers aporten con ms informacin. Yo creo
que seria til para todos, incluyndome.
Suerte.
Cristalab y Mejorando.la te traen el increble Curso de Estrategia Digital y
Marketing. Online, a tu ritmo, con diploma de certificacin y clases en vivo.

S-ar putea să vă placă și