Título: (solucionado) no consigo hacer funcionar un codigo batch
Publicado por: hckcrck en 15 Junio 2016, 00:23 am
hola, primero me gustaría recomendar el tutorial que estoy siguiendo, por que me parce muy bien explicado para empezar, con muchos ejemplos y bien escalonado, bien aquí lo dejo http://todohacker.com/tutoriales/lenguaje-batch (http://todohacker.com/tutoriales/lenguaje-batch) Es de otro foro, pero aquí lo que importa es aprender no? :silbar: mi problema es con las variables, es un ejercicio en el que tienes que sumar 2+2 (ese no es mi problema sigue leyendo :P) 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... @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 el código es algo mas largo, pero el problema debe de estar por aquí, si lo necesitáis entero lo modifico y lo pongo completo MODIFICO: lo pongo completo, así no hay que pedir nadaAntes 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"? :huh: Modifico: voy a poner donde creo que esta el error a ver si sirve de algo :-\ if %ver%==1 goto suma else goto menu if %ver%==99 goto salir else goto menu if %result%==5 goto correcto else goto incorrecto está bien puesto? nadie dice nada... :( MODIFICO Aquí os dejo otro programa que intento hacer, con el mismo problema, agradecería ayuda para avanzar en el tema @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. :huh: SOLUCIONADO!! ;-) ;-) Ale ya entendí por que es, seguro que no se me olvida nunca ;D 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; @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 como veis añado goto y el menú donde me encuentro para que si no se marca ninguna opción predefinida, haga un bucle, no se como no se me a ocurrido antes :P 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í ;D
Título: Re: (solucionado) no consigo hacer funcionar un codigo batch
Publicado por: [Arg] $triker; en 15 Junio 2016, 18:12 pm
Veo que ya solucionaste el tema, estaba publicando una respuesta. Felicitaciones.
Y gracias por el manual, me llegó la hora de desempolvar un poco lo que sé.
Título: Re: (solucionado) no consigo hacer funcionar un codigo batch
Publicado por: hckcrck en 15 Junio 2016, 22:07 pm
Veo que ya solucionaste el tema, estaba publicando una respuesta. Felicitaciones. si ;-) al finar hera muy sencillo, aunque sigo sin poder utilizar "else" el apaño me funciona Y gracias por el manual, me llegó la hora de desempolvar un poco lo que sé. De nada, me alegra poder contribuir en algo ;) aprovechando el reflote del tema dejaré un bat que he echo con los conocimientos de dicho post, a muchos les parecerá insignificante :xD pero yo estoy orgulloso de los progresos que consigo, y creo que puede servir como ejemplo a quien quiera aprender. el bat puede; 1 editar el menu con tu nombre o no, segun se quiera 2 ejecutar una terminal (windows) 3 crear un archivo de texto(prediseñado), abrirlo y borrarlo 4 crear un bat sencillo (prediseñado) ejecutarlo y eliminarlo 5 ejecutar otra ventana con el propio bat 6 salir de forma sencilla (con una imagen de despedida ;)) @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 4) crear bat2injector.bat echo 5)ejecutar otra instancia bat2 echo 99)salir set/P optionMP= if %optionMP%==1 goto personalizar if %optionMP%==2 goto start_cmd if %optionMP%==3 goto texto if %optionMP%==4 goto bat2injectorC if %optionMP%==5 goto instanew if %optionMP%==99 goto salir goto menuP pause>null :instanew echo. echo ejecutando bat2 en nueva ventana... start bat2.bat pause cls echo bat2 ejecutado :) echo ================= pause goto menuP :bat2injectorC cls echo. echo ===================== echo bat2injector creator echo ===================== echo. echo para crear el bat pulsa una tecla, para volver echo al menu principal pulse 1 set/p ncrear= if %ncrear%==1 goto menuP pause>null cls echo. echo creando bat.... echo @echo off > bat2injector.bat echo echo vienvenido a bat2injector :) >> bat2injector.bat echo echo ============================ >> bat2injector.bat echo echo. >> bat2injector.bat echo pause >> bat2injector.bat echo exit >> bat2injector.bat echo para continuar pulse una tecla pause>null :creatorM echo. echo Bat creado!! echo ============ echo que desea hacer con el %root% ? echo 1)ejecutar bat echo 2)borrar bat echo 3)nada set/p batop= if %batop%==1 goto batej if %batop%==2 goto batdel if %batop%==3 goto menuP pause>null goto creatorM :batej echo. echo ejecutando bat2injector... echo ========================== start bat2injector.bat pause>null cls echo. echo ejecutado, pulse una tecla para volver al menu de bat2injector pause>null goto creatorM :batdel cls echo. echo eliminando bat2injector.... echo =========================== del bat2injector.bat pause cls echo. echo Eliminado!! pulse una tecla para volver al menu principal echo ========================================================= pause>null goto menuP :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... pause exit
Título: Re: (solucionado) no consigo hacer funcionar un codigo batch
Publicado por: [Arg] $triker; en 17 Junio 2016, 00:16 am
Está muy bien que aprendas batch y que te sientas orgulloso de ello, pero lo que te recomiendo es que no te pongas barreras de las de "no voy a aprender otro lenguaje hasta no practicar éste" porque sino vas a quedar estancado y no te van a dar ganas de aprender más como me pasó a mí.
Un consejo: si todavía estás en la edad de programas con el bloc de notas, te recomiendo Notepad++ para editar. Y un desafío ya que tenés ganas de experimentar, te reto a hacer un script que consista en una ventana con una pelotita rebotando en una habitación vacía. Yo lo hice y es bastante entretenido.
Suerte con tu vieja. Viaje. :xD :xD :D
Título: Re: (solucionado) no consigo hacer funcionar un codigo batch
Publicado por: hckcrck en 17 Junio 2016, 00:26 am
te reto a hacer un script que consista en una ventana con una pelotita rebotando en una habitación vacía. Yo lo hice y es bastante entretenido.
Lo intentaré, pero no imagino la forma de hacerlo todavía :huh: no te pongas barreras de las de "no voy a aprender otro lenguaje hasta no practicar éste" porque sino vas a quedar estancado Lo se tranquilo, estoy empezando con el batch pero quier aprender bash y python mas adelante (y lo que se ponga :xD) Estoy diseñando un bat, esta en fase experimental, pero te puedes hacer una idea de lo que quiero hacer, tengo un problema que no me deja avanzar, lo explico en el post, el bat se llama batchelp y funcionaría como herramienta de aprendizaje, échale un ojo si te pica la curiosidad ;) https://foro.elhacker.net/scripting/recomendaciones_para_tutoriales_y_manuales_de_scripting_batch_y_bash_basico-t453956.0.html (https://foro.elhacker.net/scripting/recomendaciones_para_tutoriales_y_manuales_de_scripting_batch_y_bash_basico-t453956.0.html)
Título: Re: (solucionado) no consigo hacer funcionar un codigo batch
Publicado por: [Arg] $triker; en 17 Junio 2016, 03:55 am
Consejo: No hables sobre otros temas o hilos si no es necesario para el sentido del hilo que estás tratando.
Título: Re: (solucionado) no consigo hacer funcionar un codigo batch
Publicado por: hckcrck en 17 Junio 2016, 17:47 pm
consejo aceptado ;) lo siento, error de forero novato (y pensar que soy yo el que va por ahí llamando la atención a la gente cuando hace lo que no debe... )
|