You are on page 1of 11
teveduccién ata Computacin ~ Uc. Victor Pezo Diaz Ficheros por lotes Introduccién En muchas ocasiones los usuarios de ms-dos repiten una determinada secuencia de ordenes dia tras dfa, supontendo una tarea bastante molesta e incomoda, Los ficheros por fotes pretenden automatizar una tarea rutinaria ejecutando una serie de ordenes definidas con antelacién. Concepto de fichero por lotes Un fenero por totes es un archivo ASCII ‘gue cantlene una serie ie ordenes. Todos Ios Ficheros por lotes poseen unas caracteristicas comunes: + Extensién. Todos deben Ilevar obligatoriamente la extension BAT. + Contenido. Son ficheros de texto ASCII y, por consiguiente, pueden ser creados por Copy con o Edit. + Ejecuclon. Para hacerlo funcionar simplemente debemnos teclear su nombre a continuacion del simbolo del sistema. El fichero por lotes tomara entonces el control del ordenador. + Interrupcién. Podemos detener el procesamiento del fichero por lates en cualquier momento presionando Ctrt+ Pausa, Ejemplot, Crear un fichero por lotes “creadir.bat™, para crear la siguiente estructura de directorio y visualizar en forma gréfica. Podemos utilizar la orden Copy con o el programa Edit. a) crear el archivo creadir.bat :\>copy con creadix-bat md c:\prefa md c:\prefa\int99 md c:\prefa\con99 md c1\prefa\mato tree c:\prefa a2 1 archivos copiades. 34 Invoduccién ata Computacion — Lc. Victor Pozo Diaz by ejecutando el fichero recién creado event -———| Ecode fa orden | s\prefa LEeodelaiomden: _| |\prefa\inf99 iNprefa\con?9 — crete Eco de la orden Uistedo de putas de carpetas para e1 yolunen WINDOUSSP3 nero de serie del volumen es BBDI-G3FF REFA. ond9 inf99 neo ow Descripcion de las ordenes y simbolos Orden Breve descripcion Echo Visualiza mensajes en pantalla y controla ef eco de las ordenes. Se puede utilizar de cinco formas: ECHO mensaje; Visualiza un mensaje en pantalla ECHO ON ; Activa el eco ECHO OFF; Desactiva el eco ECHO. ; Visualiza una linea en blanco en pantalla. Rem Permite introducir comentarios internos en el cédigo de un fichero por lotes. Pause Detiene temporaimente el desarrollo de un programa, Goto Desvia incondicionalmente e!| desarrollo de un programa. It Desvia condicionalmente el desarrollo de un programa. For Repite una misma orden en un conjunto de ficheros, Call Llama a un fichero por fotes desde otro. tiqueta Nombre de una etiqueta %numero Parametro del fichero por lotes. %Y%variable Variable de la orden For. Al eJecutar el elemplot, observara como aparece el nombre de cada orden en pantalla antes de ejecutarse. Podemos aftadirle la linea ECHO OFF para desactivar el eco en lo sucesivo, 35 Inoduccién a a Computaciin ~ Ue, Victor Pozo Diaz Ejemplo2. Eliminar el eco del archivo por lotes creadir.bat. €1\>copy con creadir-bat excho off nd c:\prefa md c:\prefa\in£99 md ct \prefa\con99 md c:\prefa\nat93 tree c:\prefa 2 2 archivos copiados Ejecucion: C:\pereadin Uistade de rutas de carpeta: para el volunen WINDOWSSP3 ‘ndnero de serie del volumon es BEDi-a3FP G:\PREFA inf99 nant 99 Ejemplo3. Crear un archivo por lotes “Ejemplo3.bat™, que realice un listado de los archivos y directorio ordenados por la fecha de la unidad actual y visualice la fecha y hora del sistema. €:\>copy con ejemplo3-bat @acho off ‘rem Programa: ejemplo3.bat vem fecha:12/09/2012 rem autor: anénimo echo Listade de Archivos y directorics DIR ¢:\ /0:D ‘echo Fecha Actual DATE ‘echo Hora Actual TIME echo FIN DEL PROGRAMAI IT 2 1 archivo(s) copiado(a) Ejecucién: ¢:\>ejemplo3 36 Inoduccién ata Computacién - Le. Victor Povo Diaz Ejemplo4. Crear el archivo por lotes “Ejemplod.bat” que realice las sigulentes ecciones: a) Listado de archivos y directorios de la unidad C. b) Crear el directorio TSO y dentro el subdirectorio JAVA en la unidad C. ©) Crear el archivo carreras.txt dentro de TSO (carreras de la facultad) d) Copiar todos los archivos del directorio TSO al directorio JAVA ) Mostrar la estructura de subdirectorios y archivos del directorio TSO C:\>edit ejemplot.bat @echo off xem autor:anonimo rem fecha:12/09/2014 echo Creando directorios... dir o:\*.* md ¢:\TSO md ¢:\TSO\JAVA echo creando el archivo carreras.txt y copiando... edit c:\Ts0\carreras.txt copy ¢:\TSO\*.* c2\TSO\JAVA echo Estructura del directorio 730 tree c:\Ts0 /F echo Fin del programa!!! echo. Ejecucion Cr\>ejemplos 37 Invedueeién 21a Computaciin- Ue. Vitor Pozo Diaz Gestion de parametros Los parametros son informaciones adicionales colocadas después del nombre de una orden. Para referirnos a un pardmetro introducido en la linea de ordenes del programa, debernas escribir el signo de porcentaje (%) seguido de! numero de parametro. En la linea de drdenes, cada pardmetro debe estar separado con un espacio en blanco del anterior, podemos gestionar hasta nueve de ellos (del %1 al %9). Ejemplof. Crear un fichero por lotes “ejemploS.bat” que borre cualquier fichero introducido como pardmetros en la Ifnea de drdenes, Credit o:\edemplos.bat @echo off vem fecha: 12-09-2011 rem autor:anonimo echo Horra ficheros introducidos como parametros.. pause del %1 echo archivo: %1 borrado con EXITOIt echo. Ejecucton: c1\>Ejemplos (2 La orden PAUSE Detiene temporatmente el desarrollo de un programa. Cuando el dos encuentra una orden Pause en un fichero por lotes visualiza un mensaje en pantalla y espera una tecla para proseguir Presione una tecla para continuar. . . Sino deseamos ver el mensaje de Pause, podemos re direcclonarlo al dispositive ficticio NUL. pause >nul Ejemplo6. Crear un fichero por lotes “Ejempioé bat que copie 3 ficheros de diferentes nombres y extensiones, introducides como parametros, a la unidad D:\ 38 Intoduccién ala Computacén - Lic. Victor Pazo Diaz ~ C:\>edit c:\ejemplos bat ~ @echo off rem Programa: Ejemploé.BAT rem autor:anonimo echo Se copiaran los ficheros %1, %2 y %3 a la unidad D:\ Pause copy %1 d:\ copy 82 d:\ copy ¥3 d:\ echo Archivos %1, %2 y 3 copiados con EXITO a la unidad echo. | 3parametros | %1, %2y %3 Ejecucion Peer pereea ane na nga ee C:\>ejemplog(Planilla-bek ordenes.txt carta.doc > La orden GOTO Normalmente un fichero por lotes se desarrolla secuencialmente, desde fa primera linea hasta la Ultima. Sin embargo, a orden Goto permite desviar la ejecucion del programa hasta una etiqueta especificada como parametro. GOTOL: Jetiqueta Las etiquetas deben ir precedidas de dos puntos (:) para diferenciarse de las érdenes. Admiten hasta ocho caracteres significativos Ejemplo7. Crear un fichero por lotes “Ejempio7.bat que contenga los comandos para la version del sistema operativo y la etiqueta 0 volumen del sistema, pero que solamente muestre la version. Cleat ¢:\zjempio7 bat @echo off rem Programa que muestra solamente la versiGn del sistema operativo rem fecha:12/09/2012 rem autor: anénimo echo Mostrando le versién del 50... pause ver goto final vol ¢ final echo PIN DEL PROGRAMA!!! echo. Ejecucion: C:\>Bjemplo7 39 Inosuccion aia Computacién - Uc. Victor Pazo Diaz En este ejemplo, la orden Vol. nunca se ejecutara: al llegar la orden goto final, ms-dos salta etiqueta: Final y termina el fichero con el mensaje FIN DEL PROGRAMA Ejemplo8. Crear un programa “Ejemplo8.bat”, que muestre la etiqueta de la unidad C:\, varias veces, hasta que el usuario presione las teclas Ctrl + pausa Ci>edie ¢:\sJempios.bat @echo off rem Programa: DEMO.BAT rem fecha:30/08/2011 Phe seceeccecertercecertrsececectcccecccrrsrtrsrced echo ** Este programa utiliza la orden GOTO ” echo ** para mostrar la etiqueta de la unidad C: — ** Peeresstrrsttttr res trrretss Serer TeresSerrrr: lad echo. echo Presionar las teclas [control+pausa] para terminar echo el programa. pause>nul :Proceso vol c: goto Proceso echo FIN DEL PROGRAMA!!! echo. La orden IF Desvia condicionalmente el proceso de ejecucién de un fichero por lotes. Admite 6 sintaxis diferentes: IF EXIST fichero orden IF NOT EXIST fichero orden IF cadena1==cadena2 orden ino existe el fichero se ejecuta la orden. ji ambas cadenas son iguales se ejecuta [a orden. | ambas cadenas son diferentes se ejecuta la orden. el cédigo de salida del ultimo programa es igual o| superior al nuimero, se ejecuta la orden | €l codigo de salida del ultimo programa es inferior al numero, se ejecuta la orden. IF ERRORLEVEL numero orden IF NOT ERRORLEVEL numero orden Intoduccién ala Computacén - Lic. Victor Pazo Diaz IF EXIST Un programador debe considerar todas y cada una de las situaciones posibles al ejecutarse su programa y, por tanto, debe evitar la aparicion de mensajes de error inesperadas en la pantalla Ejemplo9. Crear el fichero por lotes “ejemplo9.bat™, que borre cualquier archivo (s), enviado como parémetro al programa, Si NO existe el archivo visualizar el mensaje “Es imposible borrar un fichero que no existe” y terminar el programa C:\>edit c:\ ejemplo9.bat @echo off rem fecha:12/09/2014 pera ouesuveveecertcrrrtrrrcrrrrrtetrtrrrrrctrrccrrtrrcrcd echo ** Programa que borra cualquier fichero introducido** echo ** como parémetro, si no existe muestra un mensaje ** echo ** de error. . pereecrerrererccrrrtrrterrerrterrerrtcrrerccrscerrtrccrcd echo. pause 4f not exist %1 goto error del %1 echo Archivos borrados con EXITO!!! goto final terror echo Imposible borrar un fichero que NO EXISTE. :final echo FIN DEL PROGRAMA!!! Ejecucién C4>ejemplo9 planilla.txt La orden FOR Repite la orden especificada para cada valor del conjunto. Conjunto es una lista de nombres de ficheros. En ella, se pueden establecer varios nombres separados por espacios y también, utilizar comodines. Sintaxis: FOR %%variable IN (conjunto) DO orden 4l Inrosuccion aia Gomputacién ~ Uc. Victor Pozo Diaz Ejemplo10. Crear el fichero por lotes “ejemplo10.bat™, que visualice el contenido de los archivos extensién txt y bat dela unidad C:\ Ci\>Edit c:\ejemplo10.bat @echo off rem fecha:20/05/2011 rem autor: anénimo QCho *###HAREEAAERRRAAARRREEAAREREEAER EEE RR REREE ARERR RRR EES echo **visualiza el contenido de los archivos con extensién** echo **.bat y .txt a peroquurrevereresterrrrrrrrrrrrrrrrrrrrrrercrrrrr teres echo. echo Para ejecutar el fichero por lotes presione enter... pause>nul for %ta in (*.txt *.bat) do type %ta echo FIN DEL PROGRAMA!!! echo. Ejecucion C:j>ejemplo10 Ejemplo11. Explicar que realiza el siguiente codigo por lotes. @echo off 4£ "S1"=="" goto Errorl if not exist %1 goto Error? del 81 echo El fichero %1 se ha borrado goto Final tErrorl echo Debe especificar un fichero como pardmetro. goto Final :Error2 echo El fichero %1 NO EXISTEII! :Final echo FIN DEL PROGRAMA!!! echo. 42 invodueeien ala Computaién- Ue. Vitor Paro Diaz La orden CALL Se utiliza para llamar a un fichero por lotes desde el interior de otro. Su sintaxis es: cau fichero [PardmetrosDelFichero] EJemploi2. Crear el fichero por lotes “ejemplo12.bat” que visualice los archivos y directorios ofdenados por el nombre, que copie todos los archivos con extensidn bat de la unidad actual (C:\) a la unidad D:\e invoque al fichero por lotes ejemplo10.bat. C:\pEdit c:\ejemplot2.bat @echo off rem fecha:24-05-2010 rem autor: anénimo pereaveversevsvetecrrccrerrerectrrrcrtrerirtestcrrtctrctertertirts echo **Listado de archivos y directorios crdenados por el nombre** pereceresrreresrerresrevesrrcprevececnrrcrresrsvennr sere: seesrreds pauge DIR /O:N acho. echo Copia los archivos con extensién .bat de la unidad C:\ a la Unidad D:\ pauge copy + bat echo. echo Invocando al fichero por lotes ejemplol0.bat pause all ejemplol0.bat echo FIN DEL PROGRAMA!!! Ejecucion C4>ejemplol2 43 Inrocuccién aia Gomputacién — Le. Victor Pozo ‘ Practica #5 FICHEROS POR LOTES Para cada pregunta crear los ficheros por lotes correspondientes: 1. “comandos.bat” que, muestre la fecha actual del sistema, a version del sistema operativo y muestre la estructura de archivos y directorios del subdirectorio system32. “practicabat”, que busque archivos y directorios en cualquier unidad (Utilizar parametros). “solucion.bat”, que permita copiar archivos de una unidad a otra (utilizar parametros). Verificar si el usuario a ingresado los parémetros correspondientes, caso contrario ‘mostrar el mensaje “debe especificar un fichero. “directorio.bat”, que permita crear cualquier directorio en la unidad que el usuario seleccione. “tso.bat™, que permita copiar archivos con extensién .bat y txt de la unidad C: a la unidad D. y visualizar su contenido (Utilizar el comando for) “todo.bat” que realice las siguientes acciones: f) Listado de archivos y directorios de la unidad D. 9) Crear el directorio TSO y dentro el subdirectorio JAVA en la unidad D. fh) Crear el archivo carreras.txt dentro de TSO (carreras del instituto) |) Mostrar la estructura de subdirectorios y archivos del directorio TSO J) Coplar todos los archivos del directorio TSO al directorio JAVA, k)_Establecer los atributos de lectura y oculto a todos los archivos del directorio JAVA 1) Mostrar solamente la carrera de “informatica” del archivo carreras.txt del directorio TsO m) Ordenar el archivo carreras. txt inversamente del directorio JAVA, el resultado enviar al archivo ordenado.txt 1) Visualizar el contenido del archivo ordenado. txt 0) cambiar el prompt del sistema, unidad y simbolo mayor (C>) P) borrar el directorio TSO (archivos y subdirectorios) 4) Mostrar un mensaje de despedida Nota.-Visualizar los mensajes correspondientes antes de ejecutar cada inciso. 44

You might also like