http://todohacker.com/tutoriales/lenguaje-batch
Es de otro foro, pero aquí lo que importa es aprender no?
mi problema es con las variables, es un ejercicio en el que tienes que sumar 2+2 (ese no es mi problema sigue leyendo ) y si te da la respuesta correcta pues vas al menú "correcto", si no lo es al menú que pongas como "incorrecto", pues no consigo que me mande a la pagina de la respuesta incorrecta, imagino que es un ejercicio que la mayoría habréis hecho, ayudarme, quiero seguir con el tema y esto no me deja...
Código:
@echo off
echo.
set/P saltar= quiere saltar e ir al menu? n/y
echo.
if %saltar%==y goto menu else goto completo
cls
:completo
echo.
echo programa de prueba programacion básica
echo.
pause>null
cls
echo.
echo ===============================
echo aprendiendo a hacer una pausa
echo ===============================
echo.
echo para continuar pulsa una tecla
pause>null
echo ==============================================
echo con este ejercicio se aprenden a usar las variables
echo ==============================================
echo.
echo pulse una tecla y rellene los datos
pause>null
cls
echo.
set/P nombre= introduzca su nombre
cls
set/P edad= ahora tu edad
cls
echo.
echo=========================================================
echo este programa a sido creado por %nombre% a la edad de %edad% años
echo=========================================================
echo.
echo pulsa una tecla para continuar
pause>null
cls
echo.
echo=======================================================
echo ahora usamos el script para realizar una suma
echo=======================================================
echo.
pause
cls
echo.
set/P numero1= introduce el primer numero de la suma
echo.
echo pulsa enter para continuar
pause>null
cls
echo.
set/P numero2= introduce el segundo numero
echo.
echo pulsa enter
set/a multiplicacion= %numero1% + %numero2%
pause>null
cls
echo.
echo el resultado es %multiplicacion%
echo.
echo pulse cualquier tecla
pause>null
cls
echo.
echo as llegado al menu de el programa %nombre%
echo a partir de ahora puedes decidir a donde quieres ir
pause
cls
:menu
echo.
echo==================
echo MENU DE SELECCION
echo==================
echo __________________
echo 1)haz una suma :)
echo 99)salir
set/P ver=cual eliges?
cls
echo.
if %ver%==1 goto suma else goto menu
if %ver%==99 goto salir else goto menu
cls
:suma
echo.
echo PRUEBA DE LA SUMA,variables 2
echo==============================
echo.
set/P result=cuanto es 2+3?
if %result%==5 goto correcto else goto incorrecto
:correcto
cls
echo.
echo por el culo te la inco!! ;)
pause>null
goto :menu
cls
:incorrecto
echo.
echo noo, estas prestando atencion?!
echo.
pause>null
goto :suma
:salir
echo.
echo el script se cerrará, bye %nombre%
echo.
pause
exit
MODIFICO: lo pongo completo, así no hay que pedir nada
Antes de que nadie diga nada, ya se que me he comido una c, daña a la vista perdón
Todo va bien ahora que lo he ordenado un poco, menos lo que comento, cuando una respuesta es incorrecta no me manda al menu correcto, las da todas por correctas, estoy utilizando bien "else"?
Modifico: voy a poner donde creo que esta el error a ver si sirve de algo
Código:
if %ver%==1 goto suma else goto menu
if %ver%==99 goto salir else goto menu
Código:
if %result%==5 goto correcto else goto incorrecto
MODIFICO
Aquí os dejo otro programa que intento hacer, con el mismo problema, agradecería ayuda para avanzar en el tema
Código:
@echo off
color 0a
cls
echo.
echo::::::::::::::::::::::::::::::::
echo juagando con el lenguaje batch
echo::::::::::::::::::::::::::::::::
pause>null
cls
echo.
echo ========================================
echo personalizar programa con su nombre? s\n
echo ========================================
echo.
set/P personalizar=
if %personalizar%==s goto personalizar else goto menuP
:personalizar
echo.
echo introduzca su nombre
echo.
set/P root=
pause>null
color 0a
:menuP
cls
echo.
echo ===============
echo MENU PRINCIPAL
echo ===============
echo %root% seleccione una opcion
echo *****************************
echo 1)volver a editar nombre
echo 2)abrir una terminal (cmd)
echo 99)salir
set/P optionMP=
if %optionMP%==1 goto personalizar
if %optionMP%==2 goto start_cmd
if %optionMP%==99 goto salir
pause>null
:start_cmd
echo .
echo iniciando consola...
start cmd.exe
pause
goto menuP
:salir
cls
echo ____________________$____________________
echo ___________________$$$___________________
echo __________________$$$$$__________________
echo __________________$$$$$__________________
echo __________________$$$$$__________________
echo ___$$$____________$$$$$___________$$$____
echo ____$$$$$_________$$$$$________$$$$$_____
echo _____$$$$$$$______$$$$$_____$$$$$$$______
echo _______$$$$$$$____$$$$$___$$$$$$$________
echo _$$$$$$$______$$$__$$$__$$$______$$$$$$$_
echo _____$$$$$$$$____$$_$_$$____$$$$$$$$_____
echo _________$$$$$$$$$_$$$_$$$$$$$$$_________
echo ________________$$$_$_$$$________________
echo ____________$$$$$___$___$$$$$____________
echo ___________$________$________$___________
echo ____________________$____________________
echo %root% esta saliendo de el programa...
echo pulse enter para cerrar el script
pause>null
exit
En este caso cuando le doy a no personalizar el programa me pone el menú de personalizar igualmente.
SOLUCIONADO!! Ale ya entendí por que es, seguro que no se me olvida nunca
Ya que he posteado mil cosas mal echas pondré el código bien escrito para que si a alguien le pasa lo mismo vea por que es;
Código:
@echo off
color 0a
cls
echo.
echo::::::::::::::::::::::::::::::::
echo juagando con el lenguaje batch
echo::::::::::::::::::::::::::::::::
pause>null
:personalizarM
cls
echo.
echo ========================================
echo personalizar programa con su nombre? s\n
echo ========================================
echo.
set/P personalizar=
if %personalizar%==s goto personalizar
if %personalizar%==n goto menuP
goto personalizarM
:personalizar
cls
echo.
echo introduzca su nombre
echo.
set/P root=
pause>null
color 0a
:menuP
cls
echo.
echo ===============
echo MENU PRINCIPAL
echo ===============
echo %root% seleccione una opcion
echo *****************************
echo 1)volver a editar nombre
echo 2)abrir una terminal (cmd)
echo 3)crear archivo de texto
echo 99)salir
set/P optionMP=
if %optionMP%==1 goto personalizar
if %optionMP%==2 goto start_cmd
if %optionMP%==3 goto texto
if %optionMP%==99 goto salir
goto menuP
pause>null
:start_cmd
echo .
echo iniciando consola...
start cmd.exe
pause
goto menuP
:texto
echo =========================
echo crear un archivo de texto
echo =========================
echo.
echo pulsa una tecla para crear un archivo de texto
echo este texto se a escrito por el script bat2 > bat2.txt
echo creado por hckcrck >> bat2.txt
pause>null
echo archivo creado, pulse una tecla para continuar
pause>null
:txtM
cls
echo.
echo %root% a creado un archivo, que desea hacer con el?
echo ===================================================
echo 1)abrirlo
echo 2)eliminarlo
echo 3)nada
set/P otxt=
if %otxt%==1 goto optxt
if %otxt%==2 goto elimtxt
if %otxt%==3 goto menuP
goto menuP
:optxt
cls
echo.
echo abriendo archivo...
start bat2.txt
pause>null
goto txtM
:elimtxt
cls
echo.
echo seguro que desea eliminar bat2.txt? s/n
set/P elimtxt=
if %elimtxt%==s goto deltxt
if %elimtxt%==n goto txtM
pause_null
goto txtM
:deltxt
del bat2.txt
echo.
echo archivo eliminado correctamente %root%
echo =============================================
echo pulsa una tecla para volver al menu principal
echo =============================================
pause>null
goto menuP
:salir
cls
echo ____________________$____________________
echo ___________________$$$___________________
echo __________________$$$$$__________________
echo __________________$$$$$__________________
echo __________________$$$$$__________________
echo ___$$$____________$$$$$___________$$$____
echo ____$$$$$_________$$$$$________$$$$$_____
echo _____$$$$$$$______$$$$$_____$$$$$$$______
echo _______$$$$$$$____$$$$$___$$$$$$$________
echo _$$$$$$$______$$$__$$$__$$$______$$$$$$$_
echo _____$$$$$$$$____$$_$_$$____$$$$$$$$_____
echo _________$$$$$$$$$_$$$_$$$$$$$$$_________
echo ________________$$$_$_$$$________________
echo ____________$$$$$___$___$$$$$____________
echo ___________$________$________$___________
echo ____________________$____________________
echo %root% esta saliendo de el programa...
echo pulse enter para cerrar el script
pause>null
exit
Citar
if %personalizar%==s goto personalizar
if %personalizar%==n goto menuP
goto personalizarM
Creo que lo voy pillando, para ser el primer día estoy contento, seguramente seguiré dando el coñazo por aquí if %personalizar%==n goto menuP
goto personalizarM