You are on page 1of 7

FICHEROS .

BAT
Son programas con instrucciones de MS-DOS, el ejemplo ms evidente es el AUTOEXEC.BAT

Ordenes @ Evita el eco de la orden en la pantalla

CALL

Invoca a un fichero .BAT y cuando termina, vuelve al que lo invoco

CHOICE

Permite elegir entre diferentes opciones

ECHO

Manda mensajes a la pantalla.

ECHO Hola que tal

FOR

Repite procesos

GOTO

Salto incondicional a una etiqueta. GOTO :etiqueta

IF

Salto o desvo condicional

PAUSE

Detiene temporalmente el proceso

REM

Coloca comentarios internos al programa

SHIFT

Desplaza el valor de los parmetros

Otras caractersticas :etiqueta %nmero %0 %1 %2 . . . . %9 %%letra %PATH% Etiqueta para salto Parmetro substituible Es el propio programa .BAT Primer parmetro substituible Segundo parmetro substituible . . . . Noveno parmetro substituible Variable para la orden FOR Variable de entorno PATH

JA Gimeno - Sistemas Operativos

pg. 1

- Ejercicio 1 Estamos en MS-DOS y en la raz del diskette A: Con el programa (editor) EDIT, efectuar un fichero de nombre TIEMPO.BAT, que limpie la pantalla, visualice el contenido del diskette, haga una pausa, nos indique la fecha y despus la hora. TIEMPO.BAT @ECHO OFF CLS DIR ECHO. PAUSE DATE ECHO. TIME ECHO. ECHO Fin del programa %0 PAUSE

Para ejecutar el programa, desde el A:\>TIEMPO e Intro

- Ejercicio 2 Crea en el diskette el directorio SEGUR, y desde elraiz de A: con EDIT crea el programa COPIA.BAT COPIA.BAT @ECHO OFF CLS COPY *.BAT A:\SEGUR ECHO. ECHO Copia Finalizada PAUSE ECHO. REM Linea en blanco ECHO. DIR A:\SEGUR ECHO. PAUSE ECHO Fin del programa %0 PAUSE Ejecuta el programa COPIA, y despus verifica que funciona correctamente.

- Ejercicio 3 Copia el programa COPIA.BAT con el nombre COPIA1.BAT (A:\>COPY COPIA.BAT COPIA1.BAT)

La lnea de COPY, modifcala por esta COPY %1 %2 y la lnea de DIR pon DIR %2*.BAT Al ejecutar el programa COPIA1.BAT, haz lo siguiente: A:\> COPIA1 *.* C:\ Razona que hemos hecho. %1 vale *.* y %2 vale C:\

Haz A:\>DIR C:\*.BAT y veras los ficheros BAT del raz del C:\

JA Gimeno - Sistemas Operativos

pg. 2

- Ejercicio 4 Efecta el programa LEER.BAT @ECHO OFF CLS TYPE %1 ECHO. PAUSE TYPE %2 ECHO. PAUSE ECHO Fin del programa %0

- Ejecuta LEER de la forma A:\>LEER TIEMPO.BAT COPIA.BAT - Razona su funcionamiento, que significa %1 y %2

- Ejercicio 5 Efecta el programa SALTO.BAT @ECHO OFF CLS ECHO Aqui empieza el programa %0 PAUSE GOTO :FIN ECHO Inicio primer proceso DIR TIME DATE ECHO Fin del primer proceso, que obviamente nunca se realiza :FIN ECHO. ECHO Aqui termina el programa %0 PAUSE - Ejecuta SALTO y razona porque no hace el primer proceso.

- Ejercicio 6 Salto condicional IF IF [NOT] EXIST Fichero ORDEN IF [NOT] cadena1==cadena2 ORDEN IF [NOT] ERRORLEVEL nmero ORDEN

Efecta el programa TESTEO.BAT @ECHO OFF CLS IF NOT EXIST V:\NUL ECHO No existe la unidad V: - Ejecuta TESTEO

JA Gimeno - Sistemas Operativos

pg. 3

Efecta el programa TESTEO1.BAT @ECHO OFF CLS IF X%1==X GOTO :ERROR_UNIDAD IF NOT EXIST %1:\NUL GOTO :NO_EXISTE ECHO. ECHO Si existe la unidad %1: ECHO. PAUSE GOTO :FIN :NO_EXISTE ECHO. ECHO No existe la unidad %1: ECHO. PAUSE GOTO :FIN :ERROR_UNIDAD ECHO No has indicado unidad %1 :FIN Ejecuta A:\> TESTEO1 Ejecuta A:\> TESTEO1 Z Ejecuta A:\> TESTEO1 C Ejecuta A:\> TESTEO1 M

- Razona el ejercicio

- Ejercicio 7 Repetir procesos FOR %%letra IN (conjunto) DO ORDEN Efecta el programa REPETIR.BAT @ECHO OFF CLS FOR %%A IN (*.BAT) DO TYPE %%A ECHO. ECHO Fin de REPETIR.BAT

- Ejecuta REPETIR - Comentario.- Si al final de la orden FOR colocramos >PRN, mandaramos todos los TYPE a la impresora.

JA Gimeno - Sistemas Operativos

pg. 4

- Ejercicio 8 Desde un fichero BAT, ejecutar a otro BAT LLAMAR.BAT @ECHO OFF CLS DIR ECHO. ATTRIB *.* ECHO. ECHO Invocamos a REPETIR.BAT, con la orden CALL PAUSE CALL REPETIR.BAT ECHO. ECHO Hemos vuelto a %0.BAT ECHO. ECHO Fin de %0 PAUSE - Ejecuta A:\>LLAMAR - Razona el ejercicio Nota.- Se pueden anidar varios BATs

- Ejercicio 9 Desde un fichero BAT, apagar el ordenador APAGAR.BAT @ECHO OFF CLS rundll32 user,exitwindows

- Ejecuta A:\>APAGAR - Razona el ejercicio - Puedes ejecutar este fichero desde el escritorio de Windows, con un acceso directo. (Primero coparlo en la carpeta els Meus Documents y despues hacer el Acceso o Ddrecera, el profesor explicar como se efecta. - Entre la orden CLS y la siguiente orden puedes insertar otras ordenes que te interese ejecutar antes de apagar el PC

- Ejercicio 10 - No realices el fichero .BAT slo razonalo. Desde Windows ejecutar un fichero BAT (puede ser con icono de acceso directo) que vaya al MS-DOS IR_A_DOS.BAT @ECHO OFF CLS C:\WINDOWS\COMMAND.COM

- Ves al icono del escritorio de MS-DOS, pica botn derecho, Propiedades y pestaa programa y linea de ordenes, razona lo que ves.

JA Gimeno - Sistemas Operativos

pg. 5

- Ejercicio 11 Fichero que crea un menu, para elegir opciones. Nota.- Ves al Help.com y lee la orden Choice. MENU.BAT @echo off cls echo. echo A Microsoft Editor echo B Calculadora echo C Otro programa echo. choice /c:abc Elija una opcin if errorlevel 3 goto Otro if errorlevel 2 goto Calculadora if errorlevel 1 goto Edit :Edit edit goto End :Calculadora c:\windows\calc goto End :Otro echo Otro programa pause :End Nota 1.- De este programa efectua una Acceso Directo en el Escritorio, y en Propiedades pon Cierra al salir. Ejecutalo desde el Escritorio. Nota 2.- Puedes utilizar la orden Choice para hacer programas que te pidan Si o No.

- Ejercicio 12 Crea en el diskette el directorio PAPELERA (A:\> MD PAPELERA )

Efecta con el editor, EDIT, el programa BORRA.BAT


@ECHO OFF CLS SET BASURA=A:\PAPELERA REM La variable de entorno BASURA, se podra crear en CONFIG.SYS o AUTOEXEC.BAT IF X%1==X GOTO :ERROR_PARAMETROS IF NOT EXIST %1 GOTO :ERROR_FICHEROS COPY %1 %BASURA% >NUL REM >NUL se pone para que no se visualice en pantalla el efecto de la orden COPY DEL %1 REM Se puede sustituir el COPY y el DEL por la orden MOVE ECHO El fichero %1 ha sido borrado REM En realidad el fichero %1, ha sido copiado a %BASURA%, que es el directorio PAPELERA de A: GOTO :FIN :ERROR_PARAMETROS ECHO. ECHO ERROR, No se ha indicado ningun fichero GOTO :FIN :ERROR_FICHEROS ECHO. ECHO ERROR, el fichero %1. No se puede borrar, porque no existe :FIN ECHO. ECHO Fin del programa %0 PAUSE

- Razona el funcionamiento del programa


JA Gimeno - Sistemas Operativos pg. 6

Ejecuta BORRA de las formas siguientes: A:\>BORRA e Intro A:\>BORRA ZZZ.BAT e Intro A:\>BORRA TIEMPO.BAT e Intro A:\>BORRA C*.BAT e Intro Razona su funcionamiento Razona su funcionamiento Razona su funcionamiento, verifica el contenido de A:\PAPELERA Razona su funcionamiento, verifica el contenido de A:\PAPELERA

- Verifica que el A:\ no estn los ficheros TIEMPO.BAT y C*.BAT - Efecta CD PAPELERA y despus DIR

- Conclusin.- Razona en que se parece este fichero BORRA.BAT a la papelera de Windows.


Nota.- Tambin te puedes hacer un acceso directo en el escritorio.

- Ejercicio 13 Crea un fichero VACIAR.BAT, que elimine el contenido de la Papelera

Nota.- Para romper (hacer Break) un fichero .BAT, pulsar CTRL+C o tambin CTRL+Pausa Inter.

Nota.- Hasta ahora hemos hecho los programas con el editor EDIT, supongamos que hemos arrancado el PC con un diskette de arranque y que no disponemos de ningn editor, y queremos efectuar un fichero BAT. La solucin esta en la orden interna COPY CON fichero.bat e introducir las ordenes, al final CTRL+Z que es el fin de fichero.

Efectua:

A:\> COPY CON ULTIMO.BAT pulsa Intro @ECHO OFF TIME DATE PAUSE REM Fin del fichero CTRL+Z

Efectua

A:\>TYPE ULTIMO.BAT e Intro

Ejecuta

A:\>ULTIMO e Intro

- Saca las conlusiones de la orden COPY CON

JA Gimeno - Sistemas Operativos

pg. 7