You are on page 1of 7

Ejercicio 1. Crea un fichero por lotes ARBOL.

BAT que genere en un archivo


llamadoARBOL.DAT, el cual contenga de forma gráfica la estructura de
carpetas de la unidad C.@echo offtree /A c:/ > arbol.datexit /bEjercicio 2.
Crea un fichero por lotes SIGNAT.BAT que muestre en
pantalla un “mensaje de
presentación personalizada".@echo
offcall:nombreecho.&pause&goto:eof:nombreecho "Indique nombre"set /p
nombre=echo Hola %nombre%goto:EOFEjercicio 3. Crea un fichero por lotes
TODOS.BAT, en el se listen todos los archivos deextensión .bmp de la
unidad C, ordenados por nombre.@echo offcd C:\DIR *.bmp /s /onEjercicio 4.
Crea un fichero por lotes llamado COPIAME.BAT, de manera que tengamos
quesuministrarle un parámetro que será el nombre de un archivo. Se debe
comprobar si el archivoexiste, en caso de que exista lo debe copiar en
la carpeta [directorio de trabajo]\papelera (queya debe existir
previamente) y salir. En caso que no exista debe salir un mensaje indicando
“El archivo no existe” y quedar pausado.
@echo offIF 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 contenidode 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 deayuda en el que se detallará cómo funciona
ORDENA.BAT@echo off

Adrián Serrano Benavente 2º ASIRset parametro=%1IF "%parametro%"==""


GOTO PARAMETROFALTAIF NOT EXIST %parametro% GOTO NOEXISTEIF
EXIST %parametro% GOTO EXISTE:NOEXISTEECHO "El archivo no
existe"pauseGOTO FINAL:PARAMETROFALTAecho "Debe introducir un
nombre de archivo a la vez que inicia el archivo por lotes"pauseGOTO
FINAL:EXISTEFOR /F %%A IN (%parametro%) DO @ECHO Linea:
%%ApauseGOTO FINAL:FINALexit /bEjercicio 6. Crea un fichero por lotes
DIRESP.BAT que liste de forma paginada todos losarchivos .BAT, .EXE,
.COM

realizando una pausa entre listado y listado? del directorioactual. Si se
introduce un parámetro, hará exactamente lo mismo pero sólo listará los
archivoscon nombre igual al parámetro introducido.@echo offset
parametro=%1IF "%parametro%"=="" GOTO MOSTRARTODOdir /s
"%parametro%".BATpausedir /s "%parametro%".EXEpausedir /s
"%parametro%".COMpauseexit:MOSTRARTODOdir /s *.BATpausedir /s
*.EXEpausedir /s *.COMpauseexitEjercicio 7. Realiza un fichero por lotes
llamado DONDE.BAT, que busque todos losarchivos que contengan la
extensión .exe en el directorio C:\Windows y el resultado de esabúsqueda
se almacene en un archivo llamado SOLUCION.TXT. Sugerencia: utilizar
la ordenfor@echo offFOR %%f IN (C:\Windows\*.*) DO FIND "*.exe" %%f >>
solucion.txt

Ejercicio 8. Realizar un archivo por lotes llamado COPIAJPG.BAT que al


ejecutarse copietodos los archivos .jpg del disco en el directorio [directorio
de trabajo]\losjpg. Sugerencia:utilizar la orden for.@echo
offMkdir %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 ej
ecutada]”.
Lógicamente, cada vez que se ejecute hay que actualizar la fecha.@echo
offprompt [%username%][$P]$Gecho "%~t0"SIGNAL.BAT nombre %~1Ejercicio 10.
Crear un fichero por lotes BUSCA.BAT el cual busque en la unidad activa
undeterminado archivo y muestre el directorio en el que se encuentra. La
especificación es lasiguiente:a. Si no se introduce ningún parámetro,
muestra la ayuda de BUSCA.BAT ( indicael 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
losarchivos y directorios de la unidad activa.@echo offset parametro=%1IF
"%parametro%"=="" GOTO PARAMETROFALTAcd C:\DIR %parametro% /s
/onpauseGOTO FINAL:PARAMETROFALTAecho "Cuando ejecute el archivo por
lotes debera indicar el fichero a buscar, ejemplo:
busca.batejemplo.txt"pauseGOTO FINAL:FINALexit /b

Adrián Serrano Benavente 2º ASIREjercicio 11.- Crea un fichero por lotes


que mediante un menú y utilizando funciones permitarealizar las
siguientes accionesa) 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.TXTNota: Debes crear los ficheros previamente de manera
manual@echo off:INICIOclsecho "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.txtecho "6)
Fichero Personal.txt"echo "7) SALIR"echo "Marque el numero de opcion"set /p
opcion=if %opcion%==1 GOTO CRONICAif %opcion%==2 GOTO AVISOif
%opcion%==3 GOTO NUMEROSif %opcion%==4 GOTO LISTINif %opcion%==5
GOTO AMIGOSif %opcion%==6 GOTO PERSONALif %opcion%==7 GOTO
SALIRGOTO ERROR:CRONICATYPE ficheros\Cronica.txt | morepauseGOTO
INICIO:AVISOTYPE ficheros\aviso.txt | morepauseGOTO
INICIO:NUMEROSTYPE ficheros\numeros.txt | sortpauseGOTO
INICIO:LISTINTYPE ficheros\listin.txt | sort /+30pauseGOTO
INICIO:AMIGOSTYPE ficheros\amigos.txt | sort /RpauseGOTO
INICIO:PERSONALfind "ignacio" ficheros\personal.txt

Adrián Serrano Benavente 2º ASIREjercicio 12.- Crea un fichero por lotes


que mediante un menú y utilizando funciones permitarealizar las
siguientes accionesa) Mostrar el fichero INFORME.TXT con pausa en cada
pantalla.b) Imprimir el fichero INFORME.TXT en la impresora. (simular la
impresora obien 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) alfichero
VARIOS.TXTe) Añadir el directorio actual al fichero VARIOS.TXT@echo
off:INICIOclsecho "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 MOSTRARif %opcion%==2 GOTO
IMPRIMIRif %opcion%==3 GOTO TEXTOif %opcion%==4 GOTO VOLUMENif
%opcion%==5 GOTO DIRECTORIOif %opcion%==6 GOTO SALIRGOTO
ERROR:MOSTRARType informe.txt | morepauseGOTO INICIO:IMPRIMIRprint
informe.txtpauseGOTO INICIO:TEXTOecho "Inserte texto:"set /p
testi=echo %testi% > impresion.txtprint impresion.txtdel
impresion.txtpauseGOTO INICIO:VOLUMENVol >> varios.txtpauseGOTO
INICIO:DIRECTORIOcd >> varios.txtpauseGOTO INICIO

Adrián Serrano Benavente 2º ASIR:ERRORecho "Opcion Incorrecta"GOTO


INICIO:SALIRexit /b
Adrián Serrano Benavente 2º ASIREjercicio 13.-Crear un fichero llamado
AMIGOS1.TXT que contenga los siguientes datos.Ismael Caballero
Valladolid 7986821María López Córdoba 4568756Sonia Aguilar Valladolid
1239083Juan Ramírez Córdoba 7643434Laura Díaz Córdoba 4221336Enrique
Ortiz Burgos 3423444Mónica Carrasco Madrid 1234123Cristina Reyes Madrid
3344334Conocer 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 opcionesa) 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 lapantalla con las correspondientes pausas.@echo
off:INICIOclsecho "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 CORDOBAif
%opcion%==2 GOTO CRISTINAif %opcion%==3 GOTO CIUDADif %opcion%==4
GOTO APELLIDOif %opcion%==5 GOTO SALIRGOTO ERROR:CORDOBAfind
"Cordoba" amigos1.txt | sort /+9 > amigos2.txttype amigos2.txt |
morepauseGOTO INICIO:CRISTINAfind "Cristina" amigos1.txt
> amigos3.txttype amigos3.txt | morepauseGOTO INICIO:CIUDADtype
amigos1.txt | sort /+19 > amigos4.txttype amigos4.txt | morepauseGOTO
INICIO:APELLIDOtype amigos1.txt | sort /+9 > amigos5.txttype amigos5.txt
| more

pauseGOTO INICIO:ERRORecho "Opcion Incorrecta"GOTO


INICIO:SALIRexit /bEjercicio 14.- Escriba un fichero de procesamiento
por lotes para borrar el ficherointroducido como parámetro. El programa
debe comprobar previamente si se ha introducidoalgún parámetro y si
el fichero existe.@echo offset parametro=%1IF "%parametro%"=="" GOTO
PARAMETROFALTAIF NOT EXIST %parametro% GOTO NOEXISTEIF EXIST
%parametro% GOTO EXISTE:NOEXISTEECHO "El archivo no
existe"pauseGOTO FINAL:PARAMETROFALTAecho "Debe introducir un
nombre de archivo a la vez que inicia el archivo por lotes"pauseGOTO
FINAL:EXISTEdel %parametro%pauseGOTO FINAL:FINALexit /bEjercicio
15.- Crea un archivo de procesamiento por lotes que se denomine listado.bat
el cualrealice las siguientes operaciones:a. Limpie la pantalla.b. Muestre por
pantalla un listado del directorio Windows del disco duro en forma
decolumnas y que se pare cuando se llene la pantalla.@echo
off:INICIOclsecho "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 LIMPIARif %opcion%==2
GOTO LISTARif %opcion%==3 GOTO SALIRGOTO
ERROR:LIMPIARclspause

Adrián Serrano Benavente 2º ASIRGOTO INICIO:LISTARdir c:\windows


/PpauseGOTO INICIO:ERRORecho "Opcion Incorrecta"pauseGOTO
INICIO:SALIRexit /bEjercicio 16.- Crea un archivo de procesamiento por
lotes que se denomine info.bat el cualrealice 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:INICIOclsecho "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
LIMPIARif %opcion%==2 GOTO HORAif %opcion%==3 GOTO FECHAif
%opcion%==4 GOTO VOLUMENif %opcion%==5 GOTO SALIRGOTO
ERROR:LIMPIARclspauseGOTO INICIO:HORAtime /TpauseGOTO
INICIO:FECHAdate /TpauseGOTO INICIO:VOLUMENVol >> varios.txt

pauseGOTO INICIO:SALIRexit /bEjercicio 17.- Crea un archivo


de procesamiento por lotes que se denomine info2.bat el cualrealice
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:INICIOclsecho "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 LIMPIARif %opcion%==2 GOTO PRUEBAif
%opcion%==3 GOTO LISTADOif %opcion%==4 GOTO COPIARif %opcion%==5
GOTO SALIRGOTO ERROR:LIMPIARclspauseGOTO INICIO:PRUEBAecho
"Creamos la carpeta c:\prueba"mkdir c:\pruebapauseGOTO
INICIO:LISTADOecho "Se guardara el resultado de lista c: en
c:\list.txt"dir c: > c:\list.txtpauseGOTO INICIO:COPIARecho "Se copiara
list.txt a c:\pruebacopy c:\list.txt c:\prueba\list.txtpauseGOTO
INICIO:SALIR
Adrián Serrano Benavente 2º ASIRexit /bEjercicio 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 offclsecho "Disco C"pausedir c:\pauseclsecho "Disco D"pausedir d:\ |
morepauseclsecho "FIN DEL BAT"exit /b

pauseGOTO INICIO:SALIRexit /bEjercicio 17.- Crea un archivo


de procesamiento por lotes que se denomine info2.bat el cualrealice
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:INICIOclsecho "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 LIMPIARif %opcion%==2 GOTO PRUEBAif
%opcion%==3 GOTO LISTADOif %opcion%==4 GOTO COPIARif %opcion%==5
GOTO SALIRGOTO ERROR:LIMPIARclspauseGOTO INICIO:PRUEBAecho
"Creamos la carpeta c:\prueba"mkdir c:\pruebapauseGOTO
INICIO:LISTADOecho "Se guardara el resultado de lista c: en
c:\list.txt"dir c: > c:\list.txtpauseGOTO INICIO:COPIARecho "Se copiara
list.txt a c:\pruebacopy c:\list.txt c:\prueba\list.txtpauseGOTO
INICIO:SALIR

Adrián Serrano Benavente 2º ASIRexit /bEjercicio 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 offclsecho "Disco C"pausedir c:\pauseclsecho "Disco D"pausedir d:\ |
morepauseclsecho "FIN DEL BAT"exit /b

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 laoperación se pasan como parámetros. Debe controlar
si se introduce una operación indebida.Solo serán válidos +, - , *, /@echo
off:INICIOclsecho "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 SUMAif ("%opcion%"=="-" OR
%opcion%==2) GOTO RESTAif ("%opcion%"=="*" OR %opcion%==3) GOTO
MULTIPLICACIONif ("%opcion%"=="/" OR %opcion%==4) GOTO DIVISIONif
%opcion%==5 GOTO SALIR:SUMAset /A res=%val1% + %val2%GOTO
RESUL:RESTAset /A res=%val1% - %val2%GOTO
RESUL:MULTIPLICACIONset /A res=%val1% * %val2%GOTO
RESUL:DIVISIONset /A res=%val1% / %val2%GOTO RESUL:RESULecho
"El resultado es: %res%"pauseGOTO INICIO:SALIRexit /b

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 comoparámetro el archivo que queremos enviar a esa
papelera. Si el programa se ejecuta sincomandos debe aparecer un menú
donde se nos de las siguientes opciones:a) Ver el contenido de la papelerab)
Vaciar completamente la papelerac) Restaurar a un directorio seguro (siempre el
mismo o por ejemplo el actual) unarchivo de la papelerad) SalirNOTA 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

You might also like