Sunteți pe pagina 1din 12

>> https://es.scribd.

com/doc/245084955/Ejercicios-Batch <<

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 2º ASIR
pause
GOTO INICIO
:ERROR
echo "Opcion no reconocida"
GOTO INICIO
:SALIR
exit /b

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 2º ASIR

:ERROR
echo "Opcion Incorrecta"
GOTO INICIO
:SALIR
exit /b

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

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