Programación avanzada de archivos en lotes.docx

10
Programación 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  Programación Batch con archivos .bat , así que te recomiendo leerlo si es que no estas instruido en el tema.  A contin uación veremos los siguien tes temas:  Uso de etiquetas  Condicionales  Creación de Menús   Apagad o y Reini ciado de P c  Leer archivos externos  Insertar al Registro  Otras cosas útiles Uso de etiquetas Como bien sabemos la lectura de los códigos 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 función GOTO. Para crear una etiqueta solo debemos escribir: Código : :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.

Transcript of Programación avanzada de archivos en lotes.docx

Programacin avanzada de archivos en lotes .batPorJaLeRuel 05 de Diciembre de 2007con 209,732 visitas

Tecnologia y otrosOtros tutoriales por JaLeRu.Esta es la segunda parte de mi tipProgramacin 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 conEtiquetasy la funcinGOTO.Para crear una etiqueta solo debemos escribir:Cdigo ::nombreEtiqueta

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

GOTOseguido del nombre de la etiqueta, como vemos en el siguiente ejemplo.Cdigo :@echo offgoto :mietiquetaecho Por que me saltan?:MiEtiquetaecho Hola, esta es la etiqueta y nos saltamos una parte del codigo.pause>nulexit

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% OrdenAEjecutarQue se podra leer de la siguiente manera. Si cadena1 es igual a Cadena2 ejecutemos la Orden OrdenAEjecutar.Tambin existe elNOTpara ver si no son iguales.if not %cadena1%== %cadena2% ejecutarAccionPara saber si un archivo existe, se usa:if exist "NombreDelArchivo" AccionAEjecutaro 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 MenorLEQ, Para verificar si es menor o igual.GTR, Si es mayorGEQ, 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/Les para especificar que nuestro for se basara en un conteo de nmeros.Aqu se repetir un Echo, que imprimir nmeros del 0 al 21.%%isera el nombre de la variable que almacenara datosin (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 casosSIreconoce 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 offFOR %%x in (a*) DO echo %%xpause

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 offFOR %%x in (*.jpg) DO echo %%xpause

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

Listado de Carpetas:FOR /D %%x in (a*) DO echo %%xEs casi lo mismo anterior, tan solo que al indicar/Dsolo se aplica a directorios.Si quisiramos que se listaran los directorios, juntos a los directorios que tienen estos dentro se ocupa/RFOR /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:Menuclsecho Seleccione su opcion tecleando el numero respectivo.echo.echo 1. Primera Opcionecho 2. Segunda Opcionecho 3. Salir

Luego para seguir ocuparamos esto:Cdigo :set /p var=if %var%==1 goto :Primeroif %var%==2 goto :Segundoif %var%==3 goto exitif %var% GTR 3 echo Errorgoto :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 ::Primerocls color aEcho Esta es la Primera OpcionEcho Precione una tecla para volver al menuPause>Nulgoto :Menu:Segundocls color 1aEcho Esta es la Segunda OpcionEcho Precione una tecla para volver al menuPause>Nulgoto :Menu

Quedando para terminar nuestro codigo as:Cdigo :@echo off:Menuclsecho Seleccione su opcion tecleando el numero respectivo.echo.echo 1. Primera Opcionecho 2. Segunda Opcionecho 3. Salirset /p var=if %var%==1 goto :Primeroif %var%==2 goto :Segundoif %var%==3 goto exitif %var% GTR 3 echo Errorgoto :Menu:Primerocls color aEcho Esta es la Primera OpcionEcho Precione una tecla para volver al menuPause>Nulgoto :Menu:Segundocls color 1aEcho Esta es la Segunda OpcionEcho Precione una tecla para volver al menuPause>Nulgoto :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-ssignifica que lo apagaremos,-tdebe 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 escribiendoshutdown -aya sea en un archivo de texto con extensin bat, como en el mismo Shell.Entonces, pues has la pruebaCdigo :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-susas-rel PC se reiniciara.Tambin puedes forzar el cierre de los programas, para que no de tiempo de guardar nada. Tan solo ocupando-fUn 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\Run /v MIBATCH.bat /t REG_SZ /d

C:\MIBATCH.bat

Con la funcinREG ADDAgregamos 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 leerMIBATCH.batyo 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.

MsgEsta 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

ATEsta 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 increbleCurso de Estrategia Digital y Marketing. Online, a tu ritmo, con diploma de certificacin y clases en vivo.