Enunciados y soluciones ficheros por lotes curso 21-22

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
 

rafa

Deja un comentario

A %d blogueros les gusta esto: