Adrián Serrano Benavente
2º ASIR
C.E.S ACADEMIA LOPE DE VEGA CFGS: 2º Administración de Sistemas Informáticos y Red Curso: 2014/2015 Asignatura: Administración de Sistemas Operativos Prof. Miguel Sánchez Polonio 1er TRIMESTRE Práctica 1: Procesamiento por lotes (I)
Ejercicio 1. Crea un fichero por lotes ARBOL.BAT que genere en un archivo llamado ARBOL.DAT, el cual contenga de forma gráfica la estructura de carpetas de la unidad C. @echo off tree /A c:/ > arbol.dat exit /b Ejercicio 2. Crea un fichero por lotes SIGNAT.BAT que muestre en pantalla un “mensaje de presentación personalizada". @echo off call:nombre echo.&pause&goto:eof :nombre echo "Indique nombre" set /p nombre= echo Hola %nombre% goto:EOF Ejercicio 3. Crea un fichero por lotes TODOS.BAT, en el se listen todos los archivos de extensión .bmp de la unidad C, ordenados por nombre. @echo off cd C:\ DIR *.bmp /s /on Ejercicio 4. Crea un fichero por lotes llamado COPIAME.BAT, de manera que tengamos que suministrarle un parámetro que será el nombre de un archivo. Se debe comprobar si el archivo existe, en caso de que exista lo debe copiar en la carpeta [directorio de trabajo]\papelera (que ya debe existir previamente) y salir. En caso que no exista debe salir un mensaje indicando “El archivo no existe” y quedar pausado. @echo off IF EXIST %1 ( COPY %1 papelera/%1 ) IF NOT EXIST %1 ( ECHO "El archivo no existe" ) pause Ejercicio 5. Crear un fichero por lotes ORDENA.BAT que muestre en pantalla el contenido de un fichero de texto pasado como parámetro ordenado, con las siguientes especificaciones: a. En caso de que no exista dicho fichero, debe mostrar un mensaje de error. b. Si se ejecuta la macro sin ningún parámetro, mostrará en pantalla un mensaje de ayuda en el que se detallará cómo funciona ORDENA.BAT @echo off
Adrián Serrano Benavente
2º ASIR
set parametro=%1 IF "%parametro%"=="" GOTO PARAMETROFALTA IF NOT EXIST %parametro% GOTO NOEXISTE IF EXIST %parametro% GOTO EXISTE :NOEXISTE ECHO "El archivo no existe" pause GOTO FINAL :PARAMETROFALTA echo "Debe introducir un nombre de archivo a la vez que inicia el archivo por lotes" pause GOTO FINAL :EXISTE FOR /F %%A IN (%parametro%) DO @ECHO Linea: %%A pause GOTO FINAL :FINAL exit /b Ejercicio 6. Crea un fichero por lotes DIRESP.BAT que liste de forma paginada todos los archivos .BAT, .EXE, .COM –realizando una pausa entre listado y listado? del directorio actual. Si se introduce un parámetro, hará exactamente lo mismo pero sólo listará los archivos con nombre igual al parámetro introducido. @echo off set parametro=%1 IF "%parametro%"=="" GOTO MOSTRARTODO dir /s "%parametro%".BAT pause dir /s "%parametro%".EXE pause dir /s "%parametro%".COM pause exit :MOSTRARTODO dir /s *.BAT pause dir /s *.EXE pause dir /s *.COM pause exit Ejercicio 7. Realiza un fichero por lotes llamado DONDE.BAT, que busque todos los archivos que contengan la extensión .exe en el directorio C:\Windows y el resultado de esa búsqueda se almacene en un archivo llamado SOLUCION.TXT. Sugerencia: utilizar la orden for @echo off FOR %%f IN (C:\Windows\*.*) DO FIND "*.exe" %%f >> solucion.txt
Adrián Serrano Benavente
2º ASIR
Ejercicio 8. Realizar un archivo por lotes llamado COPIAJPG.BAT que al ejecutarse copie todos los archivos .jpg del disco en el directorio [directorio de trabajo]\losjpg. Sugerencia: utilizar la orden for. @echo off Mkdir %userprofile%\Losjpg\ for /R C:\ %%f in ("*.jpg") do copy "%%f" %userprofile%\Losjpg\ Ejercicio 9. Crear un fichero por lotes PRACT4.BAT que: a. Modifique el PROMPT a ” [nombre alumno][trayecto actual]>” b. Muestre vuestra “Bienvenida”, invocando el fichero SIGNAT.BAT. c. Muestre en pantalla (CON) un mensaje que indique la última vez que se ejecutó dicha macro. El mensaje tendrá que tener el siguiente formato “La última vez que se ejecutó esta macro fue: [fecha de última vez ejecutada]”. Lógicamente, cada vez que se ejecute hay que actualizar la fecha. @echo off prompt [%username%][$P]$G echo "%~t0" SIGNAL.BAT nombre %~1 Ejercicio 10. Crear un fichero por lotes BUSCA.BAT el cual busque en la unidad activa un determinado archivo y muestre el directorio en el que se encuentra. La especificación es la siguiente: a. Si no se introduce ningún parámetro, muestra la ayuda de BUSCA.BAT ( indica el formato de llamada) b. En caso de que se introduzca un parámetro, procedemos a buscarlo. Sugerencia: crear un archivo DIREC.DAT en el que se liste el contenido del TODOS los archivos y directorios de la unidad activa. @echo off set parametro=%1 IF "%parametro%"=="" GOTO PARAMETROFALTA cd C:\ DIR %parametro% /s /on pause GOTO FINAL :PARAMETROFALTA echo "Cuando ejecute el archivo por lotes debera indicar el fichero a buscar, ejemplo: busca.bat ejemplo.txt" pause GOTO FINAL :FINAL exit /b
Adrián Serrano Benavente
2º ASIR
Ejercicio 11.- Crea un fichero por lotes que mediante un menú y utilizando funciones permita realizar las siguientes acciones a) Mostrar el fichero CRONICA.TXT con pausa en cada pantalla. b) Mostrar el fichero AVISO.TXT con pausa en cada pantalla. c) Ordenar el fichero NUMEROS.TXT alfabéticamente. d) Ordenar el fichero LISTIN.TXT alfabéticamente a partir de la columna 30. e) Ordenar el fichero AMIGOS.TXT inversamente. f) Buscar la cadena "IGNACIO" en el fichero PERSONAL.TXT Nota: Debes crear los ficheros previamente de manera manual @echo off :INICIO cls echo "Menu seleccion" echo "1) Fichero Cronica.txt" echo "2) Fichero Aviso.txt" echo "3) Fichero Numeros.txt" echo "4) Fichero Listin.txt" echo "5) Fichero Amigos.txt echo "6) Fichero Personal.txt" echo "7) SALIR" echo "Marque el numero de opcion" set /p opcion= if %opcion%==1 GOTO CRONICA if %opcion%==2 GOTO AVISO if %opcion%==3 GOTO NUMEROS if %opcion%==4 GOTO LISTIN if %opcion%==5 GOTO AMIGOS if %opcion%==6 GOTO PERSONAL if %opcion%==7 GOTO SALIR GOTO ERROR :CRONICA TYPE ficheros\Cronica.txt | more pause GOTO INICIO :AVISO TYPE ficheros\aviso.txt | more pause GOTO INICIO :NUMEROS TYPE ficheros\numeros.txt | sort pause GOTO INICIO :LISTIN TYPE ficheros\listin.txt | sort /+30 pause GOTO INICIO :AMIGOS TYPE ficheros\amigos.txt | sort /R pause GOTO INICIO :PERSONAL find "ignacio" ficheros\personal.txt
Adrián Serrano Benavente pause GOTO INICIO :ERROR echo "Opcion no reconocida" GOTO INICIO :SALIR exit /b
2º ASIR
Adrián Serrano Benavente
2º ASIR
Ejercicio 12.- Crea un fichero por lotes que mediante un menú y utilizando funciones permita realizar las siguientes acciones a) Mostrar el fichero INFORME.TXT con pausa en cada pantalla. b) Imprimir el fichero INFORME.TXT en la impresora. (simular la impresora o bien con una impresora virtual o más fácil, con un fichero) c) Enviar el texto introducido por el teclado en la impresora. d) Añadir la etiqueta y el número de serie de la unidad actual (orden Vol) al fichero VARIOS.TXT e) Añadir el directorio actual al fichero VARIOS.TXT @echo off :INICIO cls echo "Menu seleccion" echo "1) Mostrar Fichero" echo "2) Imprimir Fichero" echo "3) Imprimir Texto" echo "4) Incluir Datos del Volumen" echo "5) Incluir Ruta Actual al Fichero" echo "6) SALIR" echo "Marque el numero de opcion" set /p opcion= if %opcion%==1 GOTO MOSTRAR if %opcion%==2 GOTO IMPRIMIR if %opcion%==3 GOTO TEXTO if %opcion%==4 GOTO VOLUMEN if %opcion%==5 GOTO DIRECTORIO if %opcion%==6 GOTO SALIR GOTO ERROR :MOSTRAR Type informe.txt | more pause GOTO INICIO :IMPRIMIR print informe.txt pause GOTO INICIO :TEXTO echo "Inserte texto:" set /p testi= echo %testi% > impresion.txt print impresion.txt del impresion.txt pause GOTO INICIO :VOLUMEN Vol >> varios.txt pause GOTO INICIO :DIRECTORIO cd >> varios.txt pause GOTO INICIO
Adrián Serrano Benavente :ERROR echo "Opcion Incorrecta" GOTO INICIO :SALIR exit /b
2º ASIR
Adrián Serrano Benavente
2º ASIR
Ejercicio 13.Crear un fichero llamado AMIGOS1.TXT que contenga los siguientes datos. Ismael Caballero Valladolid 7986821 María López Córdoba 4568756 Sonia Aguilar Valladolid 1239083 Juan Ramírez Córdoba 7643434 Laura Díaz Córdoba 4221336 Enrique Ortiz Burgos 3423444 Mónica Carrasco Madrid 1234123 Cristina Reyes Madrid 3344334 Conocer todos los amigos de Córdoba. Conocer el número de teléfono de Cristina. Realiza un fichero batch que mediante un menú permita realizar las siguientes opciones a) Ordenar alfabéticamente el fichero basándonos en la ciudad. b)Ordenar alfabéticamente el fichero basándonos en el apellido. La salida de la orden debe guardarse en otro fichero y posteriormente visualizarlo en la pantalla con las correspondientes pausas. @echo off :INICIO cls echo "Menu seleccion" echo "1) Conocer todos los amigos de Córdoba" echo "2) Conocer el número de teléfono de Cristina." echo "3) Ordenar alfabéticamente el fichero basándonos en la ciudad" echo "4) Ordenar alfabéticamente el fichero basándonos en el apellido" echo "5) SALIR" echo "Marque el numero de opcion" set /p opcion= if %opcion%==1 GOTO CORDOBA if %opcion%==2 GOTO CRISTINA if %opcion%==3 GOTO CIUDAD if %opcion%==4 GOTO APELLIDO if %opcion%==5 GOTO SALIR GOTO ERROR :CORDOBA find "Cordoba" amigos1.txt | sort /+9 > amigos2.txt type amigos2.txt | more pause GOTO INICIO :CRISTINA find "Cristina" amigos1.txt > amigos3.txt type amigos3.txt | more pause GOTO INICIO :CIUDAD type amigos1.txt | sort /+19 > amigos4.txt type amigos4.txt | more pause GOTO INICIO :APELLIDO type amigos1.txt | sort /+9 > amigos5.txt type amigos5.txt | more
Adrián Serrano Benavente
2º ASIR
pause GOTO INICIO :ERROR echo "Opcion Incorrecta" GOTO INICIO :SALIR exit /b Ejercicio 14.- Escriba un fichero de procesamiento por lotes para borrar el fichero introducido como parámetro. El programa debe comprobar previamente si se ha introducido algún parámetro y si el fichero existe. @echo off set parametro=%1 IF "%parametro%"=="" GOTO PARAMETROFALTA IF NOT EXIST %parametro% GOTO NOEXISTE IF EXIST %parametro% GOTO EXISTE :NOEXISTE ECHO "El archivo no existe" pause GOTO FINAL :PARAMETROFALTA echo "Debe introducir un nombre de archivo a la vez que inicia el archivo por lotes" pause GOTO FINAL :EXISTE del %parametro% pause GOTO FINAL :FINAL exit /b Ejercicio 15.- Crea un archivo de procesamiento por lotes que se denomine listado.bat el cual realice las siguientes operaciones: a. Limpie la pantalla. b. Muestre por pantalla un listado del directorio Windows del disco duro en forma de columnas y que se pare cuando se llene la pantalla. @echo off :INICIO cls echo "Menu seleccion" echo "1) Limpiar pantalla" echo "2) Listar carpeta windows por columnas." echo "3) SALIR" echo "Marque el numero de opcion" set /p opcion= if %opcion%==1 GOTO LIMPIAR if %opcion%==2 GOTO LISTAR if %opcion%==3 GOTO SALIR GOTO ERROR :LIMPIAR cls pause
Adrián Serrano Benavente
2º ASIR
GOTO INICIO :LISTAR dir c:\windows /P pause GOTO INICIO :ERROR echo "Opcion Incorrecta" pause GOTO INICIO :SALIR exit /b Ejercicio 16.- Crea un archivo de procesamiento por lotes que se denomine info.bat el cual realice las siguientes operaciones: a. Limpie la pantalla. b. Muestre la hora del sistema. c. Muestre la fecha del sistema. d. Muestre la etiqueta del disco de prácticas. e. Antes de realizar una operación se mostrará un mensaje por pantalla que indicará lo que se va a realizar. f. Debe realizar una pausa cada vez que muestre un tipo de información. @echo off :INICIO cls echo "Menu seleccion" echo "1) Limpiar pantalla" echo "2) Muestre la hora del sistema." echo "3) Muestre la fecha del sistema." echo "4) Muestre la etiqueta del disco de prácticas." echo "5) SALIR" echo "Marque el numero de opcion" set /p opcion= if %opcion%==1 GOTO LIMPIAR if %opcion%==2 GOTO HORA if %opcion%==3 GOTO FECHA if %opcion%==4 GOTO VOLUMEN if %opcion%==5 GOTO SALIR GOTO ERROR :LIMPIAR cls pause GOTO INICIO :HORA time /T pause GOTO INICIO :FECHA date /T pause GOTO INICIO :VOLUMEN Vol >> varios.txt
Adrián Serrano Benavente
2º ASIR
pause GOTO INICIO :SALIR exit /b Ejercicio 17.- Crea un archivo de procesamiento por lotes que se denomine info2.bat el cual realice las siguientes operaciones: a. Limpie la pantalla. b. Cree un directorio llamado prueba en C:\ c. Cree un listado de C:\ y almacene la salida en un archivo llamado list.txt en C:\. d. Copie el archivo list.txt en el directorio prueba. e. Muestre el contenido del archivo lista.txt por pantalla de forma ordenada. f. Antes de realizar una operación se mostrará un mensaje por pantalla que indicará lo que se va a realizar. g. Debe realizar una pausa después de cada operación @echo off :INICIO cls echo "Menu seleccion" echo "1) Limpiar pantalla" echo "2) Crear carpeta prueba en C:\." echo "3) Listado de c: guardado en c:\list.txt." echo "4) Copiar el archivo list.txt en el directorio prueba." echo "5) SALIR" echo "Marque el numero de opcion" set /p opcion= if %opcion%==1 GOTO LIMPIAR if %opcion%==2 GOTO PRUEBA if %opcion%==3 GOTO LISTADO if %opcion%==4 GOTO COPIAR if %opcion%==5 GOTO SALIR GOTO ERROR :LIMPIAR cls pause GOTO INICIO :PRUEBA echo "Creamos la carpeta c:\prueba" mkdir c:\prueba pause GOTO INICIO :LISTADO echo "Se guardara el resultado de lista c: en c:\list.txt" dir c: > c:\list.txt pause GOTO INICIO :COPIAR echo "Se copiara list.txt a c:\prueba copy c:\list.txt c:\prueba\list.txt pause GOTO INICIO :SALIR
Adrián Serrano Benavente
2º ASIR
exit /b Ejercicio 18.-. Realizar un fichero BAT llamado PRACTICA.BAT que haga lo siguiente: - Desactivar la visualización de órdenes. - Borrar pantalla - Indicar un mensaje en pantalla que diga “VISUALIZACIÓN DE DISCO C” - Hacer una pausa - Ver el directorio del disco C por columnas. - Hacer una pausa - Borrar pantalla - Indicar un mensaje en pantalla que diga “VISUALIZACIÓN DE DISCO D” - Hacer una pausa - Ver el directorio del disco D por páginas. - Hacer una pausa - Borrar pantalla - Mensaje que indique “FIN DEL ARCHIVO BAT”. @echo off cls echo "Disco C" pause dir c:\ pause cls echo "Disco D" pause dir d:\ | more pause cls echo "FIN DEL BAT" exit /b
Adrián Serrano Benavente
2º ASIR
Ejercicio 19.- Crea un archivo por lotes llamado programa.bat que cuando se ejecute te pida si quieres: a) Ejecutar Internet Explorer (i) b) Ejecutar el Desfragmentador de disco (d) c) Editar el autoexec.bat con el Wordpad (w), Lla última opción será Salir (x). @echo off :INICIO cls echo "Menu seleccion" echo "1) Ejecutar internet explorer (i) " echo "2) Ejecutar desfragmentador de disco (d)" echo "3) Editar autoexec.bat con wordpad (w)" echo "4) SALIR" echo "Marque el numero de opcion" set /p opcion= if %opcion%==1 GOTO IE if %opcion%==2 GOTO DESFR if %opcion%==3 GOTO WORDPAD if "%opcion%"=="i" GOTO IE if "%opcion%"=="d" GOTO DESFR if "%opcion%"=="w" GOTO WORDPAD if %opcion%==4 GOTO SALIR GOTO ERROR :IE start iexplore GOTO INICIO :DESFR start dfrgui GOTO INICIO :WORDPAD start wordpad %WINDIR%\System32\autoexec.bat GOTO INICIO :SALIR exit /b
Adrián Serrano Benavente
2º ASIR
Ejercicio 20.- Crear una calculadora con opciones, es decir, el formato de llamada a ésta será calcula 3 + 4. Dando por pantalla Resultado: 7. Los parámetros del cálculo así como los de la operación se pasan como parámetros. Debe controlar si se introduce una operación indebida. Solo serán válidos +, - , *, / @echo off :INICIO cls echo "Introduzca valor 1" set /P val1= echo "Introduzca valor 2" set /P val2= echo "Operacion" echo "+) SUMA" echo "-) RESTA" echo "*) MULTIPLICACION" echo "/) DIVISION" echo "5) SALIR" set /p opcion= if ("%opcion%"=="+" OR %opcion%==1) GOTO SUMA if ("%opcion%"=="-" OR %opcion%==2) GOTO RESTA if ("%opcion%"=="*" OR %opcion%==3) GOTO MULTIPLICACION if ("%opcion%"=="/" OR %opcion%==4) GOTO DIVISION if %opcion%==5 GOTO SALIR :SUMA set /A res=%val1% + %val2% GOTO RESUL :RESTA set /A res=%val1% - %val2% GOTO RESUL :MULTIPLICACION set /A res=%val1% * %val2% GOTO RESUL :DIVISION set /A res=%val1% / %val2% GOTO RESUL :RESUL echo "El resultado es: %res%" pause GOTO INICIO :SALIR exit /b
Adrián Serrano Benavente
2º ASIR
Ejercicio 21.- Inventar una papelera de reciclaje haciendo si es posible un directorio oculto. Nota: usar el comando attrib. Para ello al ejecutar el programa debemos indicar y pasar como parámetro el archivo que queremos enviar a esa papelera. Si el programa se ejecuta sin comandos debe aparecer un menú donde se nos de las siguientes opciones: a) Ver el contenido de la papelera b) Vaciar completamente la papelera c) Restaurar a un directorio seguro (siempre el mismo o por ejemplo el actual) un archivo de la papelera d) Salir NOTA 1: en todos los ejercicios el ECHO está configurado como OFF. NOTA 2: cada ejercicio/s se guardará/n en un fichero independiente @echo off