Enunciados y soluciones ficheros por lotes curso 21-22

####################
EJ1_PARA.BAT
####################
Muestra los 10 primeros parámetros
@ECHO OFF CLS ECHO EL PARAMETRO CERO ES %0 ECHO EL PARAMETRO UNO ES %1 ECHO EL PARAMETRO DOS ES %2 ECHO EL PARAMETRO TRES ES %3 ECHO EL PARAMETRO CUATRO ES %4 ECHO EL PARAMETRO CINCO ES %5 ECHO EL PARAMETRO SEIS ES %6 ECHO EL PARAMETRO SIETE ES %7 ECHO EL PARAMETRO OCHO ES %8 ECHO EL PARAMETRO NUEVE ES %9
####################
EJ2_PARA.BAT
####################
Muestra un listado del tipo de archivos pasado como primer parámetro.
Crea un directorio con el segundo parámetro.
Copia todos los archivos a ese directorio.
Muestra un listado en formato árbol incluyendo los archivos.
@ECHO OFF CLS DIR *.%1 MD %2 COPY *.* %2 TREE /F
####################
EJ3_PARA.BAT
####################
Crea un directorio con el primer parámetro
Copia los archivos que empiecen con el texto del segundo parámetro al directorio anterior
Crea un fichero con la fecha de nombre el tercer parámetro
Muestra su contenido
@ECHO OFF CLS MD %1 COPY %2*.* %1 DATE /T>%3 TYPE %3
####################
EJ4_PARA.BAT
####################
Muestra 3 parámetros
Crea 2 directorios con los dos primeros parámetros y un archivo con la hora del sistema con el tercero.
@ECHO OFF CLS ECHO LOS PARAMETROS SON %1 - %2 - %3 MD %1 %2 TIME /T>%3
####################
EJ5_PARA.bat
####################
Muestra los 15 primeros parámetros
@ECHO OFF CLS ECHO EL PARAMETRO 1 ES %1 eCHO EL PARAMETRO 2 ES %2 ECHO EL PARAMETRO 3 ES %3 ECHO EL PARAMETRO 4 ES %4 ECHO EL PARAMETRO 5 ES %5 ECHO EL PARAMETRO 6 ES %6 ECHO EL PARAMETRO 7 ES %7 ECHO EL PARAMETRO 8 ES %8 ECHO EL PARAMETRO 9 ES %9 SHIFT ECHO EL PARAMETRO 10 ES %9 SHIFT ECHO EL PARAMETRO 11 ES %9 SHIFT ECHO EL PARAMETRO 12 ES %9 SHIFT ECHO EL PARAMETRO 13 ES %9 SHIFT ECHO EL PARAMETRO 14 ES %9 SHIFT ECHO EL PARAMETRO 15 ES %9
####################
EJ5b_PARA.bat
####################
@ECHO OFF CLS ECHO EL PARAMETRO 1 ES %1 ECHO EL PARAMETRO 2 ES %2 ECHO EL PARAMETRO 3 ES %3 ECHO EL PARAMETRO 4 ES %4 ECHO EL PARAMETRO 5 ES %5 ECHO EL PARAMETRO 6 ES %6 ECHO EL PARAMETRO 7 ES %7 ECHO EL PARAMETRO 8 ES %8 ECHO EL PARAMETRO 9 ES %9 SHIFT SHIFT SHIFT SHIFT SHIFT SHIFT ECHO EL PARAMETRO 10 ES %4 ECHO EL PARAMETRO 11 ES %5 ECHO EL PARAMETRO 12 ES %6 ECHO EL PARAMETRO 13 ES %7 ECHO EL PARAMETRO 14 ES %8 ECHO EL PARAMETRO 15 ES %9
####################
EJ6_PARA.BAT
####################
Cambia el nombre de los ficheros cuya extensión coincida con el primer parámetro a la extensión pasada como segundo parámetro
Ej: EJ6_PARA.BAT TXT ISO
@ECHO OFF CLS REN *.%1 *.%2
####################
EJ7_PARA.BAT
####################
Admite 3 parámetros que son 2 ficheros que existen y uno que no.
Une los dos primeros en el tercer fichero
Ej: EJ7_PARA.BAT fichero1.txt fichero2.txt union
@ECHO OFF CLS COPY %1 + %2 %3 REM DE OTRA FORMA SERIA REM TYPE %1 > %3 REM TYPE %2 >> %3
####################
EJ8_PARA.BAT
####################
Admite hasta 5 parámetros
– Cambia la etiqueta del sistema por el nombre introducido como primer parámetro
– Muestra dicha etiqueta
– Crea el directorio pasado como segundo parámetro y copia todos los archivos con extensión pasado como tercer parámetro a dicho directorio
– Copia el contenido de todos esos archivos pasados a un fichero llamado como el cuarto parámetro
– Finalmente crea un fichero llamado CONTE.TXT con el contenido pasado como quinto parámetro y muestra dicho archivo
Ej: EJ8_PARA.BAT NUEVAETI DIRE TXT FICHERO4.TXT “HOLAQUEPASA COMO ESTS”
@ECHO OFF CLS LABEL C: %1 VOL MD %2 COPY *.%3 %2 TYPE *.%3>>%4 ECHO %5>CONTE.TXT TYPE CONTE.TXT
####################
EJ9_EXISTE.BAT
####################
Comprueba que el fichero pasado como primer parámetro existe o no, mostrando el mensaje correspondiente
Ej: EJ9_EXISTE.BAT PEPITO.TXT
@ECHO OFF CLS IF EXIST %1 ECHO EL FICHERO %1 EXISTE IF NOT EXIST %1 ECHO EL FICHERO %1 NO EXISTE
####################
EJ10_2IGUALES.bat
####################
Comprueba que los dos parámetros introducidos son iguales o diferentes, indicando el mensaje correspondiente
Ej: EJ10_2IGUALES.BAT UNO DOS
@ECHO OFF CLS IF "%1"=="%2" ECHO %1 Y %2 SON IGUALES IF NOT "%1"=="%2" ECHO %1 Y %2 SON DIFERENTES
####################
EJ11_3IGUALES.BAT
####################
Comprueba que los TRES parámetros introducidos son iguales o diferentes, indicando lo siguiente
Los tres x,y,z son iguales
Hay alguno diferente
@ECHO OFF CLS IF "%1"=="%2" GOTO 1Y2IGUALESVER3 GOTO ALGUNODIFERENTE :1Y2IGUALESVER3 IF "%2"=="%3" GOTO IGUALES GOTO ALGUNODIFERENTE :IGUALES ECHO %1,%2 Y %3 SON IGUALES GOTO FIN :ALGUNODIFERENTE ECHO HAY ALGUNO DIFERENTE :FIN
####################
EJ11_3BIGUALES.BAT
####################
@ECHO OFF CLS IF "%1"=="%2" ( IF "%2"=="%3" ( ECHO %1, %2 Y %3 SON IGUALES ) ELSE ( ECHO HAY ALGUNO DIFERENTE ) ) ELSE ( ECHO HAY ALGUNO DIFERENTE )
AMPLIACIÓN EJ11_3IGUALES_C.BAT
Comprueba que los TRES parámetros introducidos son iguales o diferentes, indicando lo siguiente
Los tres x,y,z son iguales
Los tres x,y,z son diferentes
X e y iguales pero z diferente
####################
EJ12_NUMPARA.BAT
####################
Fichero que admite 3 parámetros y muestra el mensaje correspondiente
No ha introducido ningún parámetro debe introducir 3
ha introducido un parámetro debe introducir 3
ha introducido dos parámetros debe introducir 3
Correcto, ha introducido 3 parámetros!
ha introducido más de tres parámetros debe introducir 3
@ECHO OFF CLS IF "%1"=="" ( ECHO NO HA INTRODUCIDO NINGUN PARAM. DEBE INTRODUCIR 3 ) ELSE ( IF "%2"=="" ( ECHO HA INTRODUCIDO 1 PARAM. DEBE INTRODUCIR 3 ) ELSE ( IF "%3"=="" ( ECHO HA INTRODUCIDO 2 PARAM. DEBE INTRODUCIR 3 ) ELSE ( IF "%4"=="" ( ECHO CORRECTO, HA INTRODUCIDO 3 PARAM!! ) ELSE ( ECHO HA INTRODUCIDO MAS DE 3 PARAM. ) ) ) )
####################
EJ13_VARIOSPAR.BAT
####################
Admite solo un parametro que es el nombre de un directorio, mostrando el mensaje correspondiente
“ha introducido …”
En caso de introducir uno y solo un parametro, comprueba que dicho directorio existe
– si existe muestra su contenido
– si no existe, muestra mensaje y lo crea
@ECHO OFF CLS IF "%1"=="" ( ECHO NO HA INTRODUCIDO NINGUN PARAM. DEBE INTRODUCIR 1 ) ELSE ( IF "%2"=="" ( IF EXIST "%1" ( ECHO %1 EXISTE DIR %1 ) ELSE ( ECHO %1 NO EXISTE MD %1 ) ) ELSE ( ECHO HA INTRODUCIDO MAS DE 1 PARAMETRO ) )
####################
EJ14_FOR.BAT
####################
Muestra el nombre de los ficheros cuya extensión coincida con el primer parámetro
Ej: EJ14_FOR.BAT TXT
@ECHO OFF CLS FOR %%F IN (*.%1) DO ECHO %%F
####################
EJ15_FOR.BAT
####################
Muestra los números del 100 al 0 de 2 en 2
@ECHO OFF CLS FOR %%n IN (100,-2,0) DO ECHO %%n
####################
EJ16_FOR.BAT
####################
Muestra los números comprendidos entre el primer parámetro y el segundo parámetro, contados en intervalos que indique el tercer parámetro
Ej: EJ16_FOR.BAT 4 70 3 (DEL 4 AL 70 DE 3 EN 3)
@ECHO OFF CLS FOR /L %%K IN (%1,%3,%2) DO ECHO %%K
####################
EJ17_MENU.BAT
####################
Muestra un menú con 4 opciones A,B,C y D e indica la opcion elegida
@ECHO OFF CLS ECHO A.OPCION A ECHO B.OPCION B ECHO C.OPCION C ECHO D.OPCION D CHOICE /C ABCD /M "Seleccione opcion: " IF ERRORLEVEL 4 GOTO OPCD IF ERRORLEVEL 3 GOTO OPCC IF ERRORLEVEL 2 GOTO OPCB IF ERRORLEVEL 1 GOTO OPCA :OPCA ECHO HA SELECCIONADO OPCION A GOTO FIN :OPCB ECHO HA SELECCIONADO OPCION B GOTO FIN :OPCC ECHO HA SELECCIONADO OPCION C GOTO FIN :OPCD ECHO HA SELECCIONADO OPCION D :FIN
####################
EJ18_AGENDA.bat
####################
a) A partir del fichero AMIGOS.TXT, crear el siguiente Menú
AGENDA
V. Ver agenda
L. Ordenada por localidad
A. Ordenada por apellidos
S. Salir
@ECHO OFF CLS ECHO AGENDA ECHO. ECHO V.VER AGENDA (NORMAL) ECHO L.ORDENADO POR LOCALIDAD ECHO A.ORDENADO POR APELLIDOS CHOICE /C:VLAS /M "Selecciona una opcion: " IF ERRORLEVEL 3 GOTO APELL IF ERRORLEVEL 2 GOTO LOCAL IF ERRORLEVEL 1 GOTO NORMA :NORMA ECHO. ECHO Ver agenda ECHO. TYPE AMIGOS.TXT GOTO FIN :LOCAL ECHO. ECHO Ordenada por localidad ECHO. TYPE AMIGOS.TXT |SORT /+26 GOTO FIN :APELL ECHO. ECHO Ordenada por apellido ECHO. TYPE AMIGOS.TXT |SORT /+12 :FIN
Siendo el fichero AMIGOS.TXT de la forma:
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
####################
EJ18B_AGENDA.BAT
####################
b) En EJ18B_AGENDA.BAT
El menú en EJ18B_AGENDA.BAT y además 3 archivos:
VERNORMAL.BAT
ORDLOCAL.BAT
ORDAPEL.BAT
Utilizando CALL
@ECHO OFF :INICIO CLS ECHO AGENDA ECHO. ECHO V.VER AGENDA (NORMAL) ECHO L.ORDENADO POR LOCALIDAD ECHO A.ORDENADO POR APELLIDOS ECHO S.SALIR CHOICE /C:VLAS /M "Selecciona una opcion: " IF ERRORLEVEL 4 GOTO SALIR IF ERRORLEVEL 3 GOTO APELL IF ERRORLEVEL 2 GOTO LOCAL IF ERRORLEVEL 1 GOTO NORMA :NORMA CALL VERNORMAL.BAT GOTO INICIO :LOCAL CALL ORDENLOC.BAT GOTO INICIO :APELL CALL ORDENAPE.BAT GOTO INICIO :SALIR ECHO. ECHO Gracias por utilizarnos ;)
####################
EJ18c_AGENDA.bat
####################
c) EJ18C_AGENDA.BAT
Igual que B) pero sin CALL
VERNORMAL.BAT
ORDLOCAL.BAT
ORDAPEL.BAT
@ECHO OFF :INICIO CLS ECHO AGENDA ECHO. ECHO V.VER AGENDA (NORMAL) ECHO L.ORDENADO POR LOCALIDAD ECHO A.ORDENADO POR APELLIDOS ECHO S.SALIR CHOICE /C:VLAS /M "Selecciona una opcion: " IF ERRORLEVEL 4 GOTO SALIR IF ERRORLEVEL 3 GOTO APELL IF ERRORLEVEL 2 GOTO LOCAL IF ERRORLEVEL 1 GOTO NORMA :NORMA VERNORMAL.BAT :LOCAL ORDENLOC.BAT :APELL ORDENAPE.BAT :SALIR ECHO. ECHO Gracias por utilizarnos ;)
####################
EJ19_AGENDA.BAT
####################
Utilizando SET-IF en lugar de CHOICE
@ECHO OFF :INICIO CLS ECHO AGENDA ECHO. ECHO V.VER AGENDA (NORMAL) ECHO L.ORDENADO POR LOCALIDAD ECHO A.ORDENADO POR APELLIDOS ECHO S.SALIR SET /P OPCION=Selecciona una opcion: IF "%OPCION%"=="V" GOTO NORMA IF "%OPCION%"=="L" GOTO LOCAL IF "%OPCION%"=="A" GOTO APELL IF "%OPCION%"=="S" GOTO SALIR ECHO OPCION NO VALIDA, TECLEE V,L,A,S PAUSE GOTO :INICIO :NORMA CALL VERNORMAL.BAT GOTO INICIO :LOCAL CALL ORDENLOC.BAT GOTO INICIO :APELL CALL ORDENAPE.BAT GOTO INICIO :SALIR ECHO. ECHO Gracias por utilizarnos ;)
####################
EJ20_EXISTE.BAT
####################
Pide el nombre de un archivo o directorio y comprueba que dicho archivo existe o no mostrando el mensaje correspondiente
@ECHO OFF CLS SET /P ARCHIVO="Introduce archivo o directorio: " IF EXIST "%ARCHIVO%" ( ECHO EL ARCHIVO-DIRECTORIO %ARCHIVO% EXISTE ) ELSE ( ECHO EL ARCHIVO-DIRECTORIO %ARCHIVO% NO EXISTE )
####################
EJ21_CALCULA.BAT
####################
Pide dos números y el tipo de operación a realizar y realiza la operación correspondiente
num1:
num2:
Operacion +,-,*,/ ?
@ECHO OFF CLS SET /P NUM1=Numero 1: SET /P NUM2=Numero 2: SET /P OPER=Selecciona operación (+,-,*,/)? REM MODO 2 SET /A RESULTADO=%NUM1% %OPER% %NUM2% ECHO %NUM1% %OPER% %NUM2% = %RESULTADO% REM MODO1 IF "%OPER%"=="+" GOTO SUMA IF "%OPER%"=="-" GOTO RESTA IF "%OPER%"=="*" GOTO MULTI IF "%OPER%"=="/" GOTO DIVI :SUMA SET /A RESULTADO=%NUM1% + %NUM2% ECHO %NUM1% + %NUM2% = %RESULTADO% GOTO FIN REM Y ASI CON EL RESTO DE OPERACIONES
####################
EJ22_CUENTANUM.BAT
####################
a) Pide numeros hasta que introduzca el número 99
b) Cuenta cuantos números he introducido (sin contar el 99)
c) Muestra la media de los números introducidos (sin contar el 99)
@ECHO OFF CLS SET /A CONTADOR=0 SET /A SUMA=0 :REPITE SET /P NUM=Numero: IF "%NUM%"=="99" GOTO FIN SET /A CONTADOR=%CONTADOR%+1 SET /A SUMA=%SUMA%+%NUM% GOTO REPITE :FIN ECHO HA INTRODUCIDO %CONTADOR% NUMEROS ECHO LA SUMA ES %SUMA% SET /A MEDIA=%SUMA%/%CONTADOR% ECHO LA MEDIA ES %MEDIA%
####################
EJ22_CUENTANUMB.BAT
####################
Hace la pregunta 2+2? y tenemos hasta 3 intentos para acertarla.
Cuando acierta, indica CORRECTO ha acertado en el intento X
Si pasan los 3 intentos y no acierta, indica GAME OVER
@ECHO OFF CLS SET NUMTOT=-1 :INICIO SET /A NUMTOT=%NUMTOT% + 1 SET /P NUM="Introduzca un numero: " IF NOT "%NUM%"=="99" GOTO INICIO ECHO HA INTRODUCIDO %NUMTOT% NUMEROS
####################
EJ23_CONCURSO1.BAT
####################
@ECHO OFF CLS SET /A INTENTO=1 :REPITE SET /P RESP=2+2? IF "%RESP%"=="4" GOTO ACIERTO SET /A INTENTO=%INTENTO%+1 IF "%INTENTO%"=="4" GOTO GAMEOVER GOTO REPITE :ACIERTO ECHO CORRECTO! HA ACERTADO EN EL INTENTO %INTENTO% GOTO FIN :GAMEOVER ECHO GAME OVER, HAN ACABADO SUS INTENTOS :FIN
####################
EJ24_CONCURSO2.BAT
####################
Al inicio me pide nombre del jugador
Y COMPRUEBA QUE NO HAYA JUGADO ANTES
– SI HA JUGADO, muestra el mensaje y le indica que no puede jugar más
– SI NO HA JUGADO, le hace las preguntas
Realiza 3 preguntas, 2+2,3+3 y 4+4, y cuenta el número de aciertos.
ACIERTO o ERROR en cada una y al final
Ha tenido x aciertos
Al final me guarda en un fichero llamado CONCURSANTES.TXT, el número de aciertos y el nombre, de la forma
2 PEPE
3 JUAN
Me pregunta si quiero ver el fichero S/N?
Si contesta que sí, pregunta
si quiere verlo ordenado por puntos (p) o por nombre (n)?
Al final, me pregunta si quiere indicar otro jugador?
– SI LE DICE QUE SÍ, pide nombre
– SI LE DICE QUE NO, se despide amablemente
@ECHO OFF :INICIO CLS SET /A ACIERTOS=0 SET /A RESP=0 SET /P Jugador=Introduce jugador: FIND "%Jugador%" /i CONCURSANTES.TXT>NUL IF ERRORLEVEL 1 GOTO NOHAJUGADO IF ERRORLEVEL 0 GOTO HAJUGADO :NOHAJUGADO SET /P RESP=2+2? IF "%RESP%"=="4" SET /A ACIERTOS=%ACIERTOS%+1 SET /P RESP=3+3? IF "%RESP%"=="6" SET /A ACIERTOS=%ACIERTOS%+1 SET /P RESP=4+4? IF "%RESP%"=="8" SET /A ACIERTOS=%ACIERTOS%+1 ECHO HA TENIDO %ACIERTOS% ACIERTOS ECHO %ACIERTOS% %JUGADOR%>>CONCURSANTES.TXT SET /P VERFIC=Desea ver el fichero concursantes (s)? IF "%VERFIC%"=="s" goto VERF GOTO FIN :VERF SET /P ORDE=Ordenado por aciertos (a) o nombre (n)? IF "%ORDE%"=="a" TYPE CONCURSANTES.TXT | SORT /R IF "%ORDE%"=="n" TYPE CONCURSANTES.TXT | SORT /+3 GOTO FIN :HAJUGADO ECHO Lo siento, %JUGADOR% YA HA JUGADO :FIN SET /P SIGUE=Otro jugador(s/n)? IF "%SIGUE%"=="s" GOTO INICIO
####################
EJ24_CONCURSO2B.BAT
####################
@ECHO OFF :INICIO CLS SET /A ACIERTOS=0 SET /A RESP=0 SET /P JUGADOR=Nombre jugador: SET /P RESP=2+2? IF "%RESP%"=="4" ( ECHO ACIERTO SET /A ACIERTOS=%ACIERTOS%+1 ) ELSE ( ECHO INCORRECTO ) SET /P RESP=3+3? IF "%RESP%"=="6" ( ECHO ACIERTO SET /A ACIERTOS=%ACIERTOS%+1 ) ELSE ( ECHO INCORRECTO ) SET /P RESP=4+4? IF "%RESP%"=="8" ( ECHO ACIERTO SET /A ACIERTOS=%ACIERTOS%+1 ) ELSE ( ECHO INCORRECTO ) ECHO HA TENIDO %ACIERTOS% ACIERTOS ECHO %ACIERTOS% %JUGADOR% >> CONCURSANTES.TXT CHOICE /C SN /M "Desea ver el fichero?" IF ERRORLEVEL 2 GOTO FIN IF ERRORLEVEL 1 GOTO VERF :VERF SET /P ORDEN="Ordenado por puntos (P) o nombre (N)? " IF "%ORDEN%"=="P" TYPE CONCURSANTES.TXT | SORT IF "%ORDEN%"=="N" TYPE CONCURSANTES.TXT | SORT /+3 :FIN
####################
EJ25_SOCIOS.BAT y GESTIONAR.BAT
####################
(Parecida a la vista en clase, en lugar de nombre de socio he utilizado DNI)
Con los menús dados en clase, realizar la gestión de socios requerida.
SOCIOS.BAT
@ECHO OFF :INICIO CLS ECHO MENU DE GESTION ECHO. ECHO 1. VER TODOS ECHO 2. BUSCAR SOCIO ECHO 3. GESTIONAR ECHO 4. SALIR SET /P OPC=Seleccione opcion: IF "%OPC%"=="1" TYPE SOCIOS.TXT IF "%OPC%"=="2" GOTO BUSCAR IF "%OPC%"=="3" CALL GESTIONAR.BAT IF "%OPC%"=="4" GOTO FIN PAUSE GOTO INICIO :BUSCAR SET /P DNI=Dni a buscar: TYPE SOCIOS.TXT |FIND "%DNI%" PAUSE GOTO FIN :FIN ECHO Gracias por todo ;)
GESTIONAR.BAT
@ECHO OFF :INICIO CLS ECHO A. ALTAS ECHO B. BAJAS ECHO C. MODIFICACIONES ECHO V. VOLVER SET /P OPCION=Selecciones opcion: IF "%OPCION%"=="A" GOTO ALTAS IF "%OPCION%"=="B" GOTO BAJAS IF "%OPCION%"=="C" GOTO MODIFI IF "%OPCION%"=="V" GOTO FIN PAUSE GOTO INICIO :ALTAS SET /P DNI=Introduzca DNI: TYPE SOCIOS.TXT | FIND "%DNI%">NUL IF ERRORLEVEL 1 GOTO ALTANOENCONTRADO ECHO EL %DNI% YA PERTENECE A SOCIOS.TXT PAUSE GOTO INICIO :ALTANOENCONTRADO SET /P NOM=Introduzca nombre: SET /P LOCAL=Introduzca localidad: ECHO %DNI% %NOM% %LOCAL% >> SOCIOS.TXT GOTO INICIO :BAJAS SET /P DNI=Introduzca DNI: TYPE SOCIOS.TXT | FIND "%DNI%">NUL IF ERRORLEVEL 1 GOTO BAJANOENCONTRADO SET /P BORRAR=Va a eliminar un socio, esta seguro (s/n)? IF "%BORRAR%"=="n" GOTO INICIO TYPE SOCIOS.TXT | FIND "%DNI%" /V >SOCIOS.TEMP DEL SOCIOS.TXT REN SOCIOS.TEMP SOCIOS.TXT GOTO INICIO :BAJANOENCONTRADO ECHO EL %DNI% NO PERTENECE A SOCIOS.TXT PAUSE GOTO INICIO :MODIFI SET /P DNI=Introduzca DNI: TYPE SOCIOS.TXT | FIND "%DNI%">NUL IF ERRORLEVEL 1 GOTO BAJANOENCONTRADO TYPE SOCIOS.TXT | FIND "%DNI%" /V >SOCIOS.TEMP DEL SOCIOS.TXT REN SOCIOS.TEMP SOCIOS.TXT SET /P NOM=Introduzca nombre: SET /P LOCAL=Introduzca localidad: ECHO %DNI% %NOM% %LOCAL% >> SOCIOS.TXT PAUSE GOTO INICIO :FIN
####################
EJ26_CUADRADO.BAT
####################
Comprueba que hemos introducido un parámetro y solo uno, que es un número.
– si hemos introducido 0, indica
quiere introducir el número ahora? (s/n)
– si contesta que sí, pide número y realiza su cuadrado
– si contesta que no, termina
– si hemos introducido un parámetro, realiza su cuadrado
– si hemos introducido más de un parámetro muestra el mensaje correspondiente
@ECHO OFF CLS IF "%1"=="" GOTO NINGUNO IF NOT "%1"=="" GOTO INTRODUCIDO :INTRODUCIDO IF NOT "%2"=="" GOTO MASDEUNO SET /A CUADRADO=%1 * %1 ECHO EL CUADRADO DEL NUMERO %1 ES %1 X %1 = %CUADRADO% PAUSE GOTO SALIR :MASDEUNO ECHO HA INTRODUCIDO MAS DE UN PARAMETRO GOTO SALIR :NINGUNO SET /P PARAMETRO= "NO HAS INTRODUCIDO NINGUN PARAMETROS QUIERES HACERLO AHORA? (S/N): ?" IF "%PARAMETRO%"=="S" GOTO CUADRADO IF NOT "%PARAMETRO%"=="S" GOTO SALIR :CUADRADO SET /P NUMERO= "INTRODUZCA EL NUMERO: " SET /A CUADRADO=%NUMERO% * %NUMERO% ECHO EL CUADRADO DEL NUMERO %NUMERO% ES %NUMERO% X %NUMERO% = %CUADRADO% PAUSE GOTO SALIR :SALIR ECHO GRACIAS POR UTILIZARNOS :)
####################
EJ27_COPIA.BAT
####################
Pide el nombre de un fichero por pantalla y comprueba si existe o no.
– si existe pide un directorio y comprueba que exista el directorio
– si no existe el directorio lo crea
– si existe el directorio
– copia el archivo anterior al directorio
– si no existe lo indica y termina
@ECHO OFF CLS SET /P FICHERO="fICHERO: " IF EXIST "%FICHERO%" GOTO FICEXISTE ECHO EL FICHERO %FICHERO% NO EXISTE GOTO FIN :FICEXISTE SET /P DIRE="Directorio: " IF EXIST "%DIRE%" GOTO CORRECTO MKDIR %DIRE% :CORRECTO COPY %FICHERO% %DIRE% ECHO FICHERO %FICHERO% COPIADO A %DIRE% :FIN
####################
EJ28_EVALUA.BAT
####################
Pide el nombre de un módulo y comprueba que exista un fichero txt con ese nombre
Modulo: ISO
Comprueba que exista el archivo ISO.txt
Y muestra el mensaje correspondiente
– si existe pide alumno y comprueba si existe
– si existe introduce nota y manda al fichero nota y nombre
– si no existe indica el mensaje
– al final pregunta si quiere introducir otro módulo
@ECHO OFF :inicio cls echo Rellene los siguientes datos: set /p modulo="Nombre de modulo:" if exist %modulo%.txt ( goto existe ) else ( goto noexiste ) :noexiste echo El fichero que ha nombrado no existe pause goto inicio :existe set /p alumno="Nombre del alumno:" type %modulo%.txt | find /i "%alumno%" >nul if errorlevel 1 goto noencontrado if errorlevel 0 goto encontrado :encontrado echo Este alumno ya esta registrado. pause goto inicio :noencontrado set /p nota="Nota del alumno:" echo %nota% %alumno% >> %modulo%.txt set /p ver="Desea ver el fichero?" if "%ver%"=="s" goto verF goto final :verF type %modulo%.txt set /p verm="Desea introducir otro MODULO?" if "%verm%"=="s" goto inicio :final