estoy haciendo un menu parecido a este este fue un copia pega borrando las opciones , el caso es que no consigo que ejecute el cabron
cuando paso a cualquiera de los menus secundarios aborta
algun consejo???
thx
@echo off
:menuprincipal
echo. 1.
echo. 2.
echo. 3.
echo. 4.
echo. 5.
echo. 6.
echo. 7.
echo. 8.
echo. 9.
set/p eleccion =
IF %eleccion%==1 (GOTO menu1)
if %eleccion%==2 (GOTO menu2)
if %eleccion%==3 (GOTO menu3)
if %eleccion%==4 (GOTO menu4)
if %eleccion%==5 (GOTO menu5)
if %eleccion%==6 (GOTO menu6)
if %eleccion%==7 (GOTO menu7)
if %eleccion%==8 (GOTO menu8)
if %eleccion%==9 (GOTO menu8)
PAUSE
:menu2
pause
echo. 1.
echo. 0.
set/p Eleccion2 = elige
if %Eleccion2%=2 start "C:\lo que sea"
if %Eleccion2%=0 GOTO(menu1)
:menu3
pause
echo. 1.
echo. 0.
set/p Eleccion3 = elige
if %Eleccion2%=1 start "C:\lo que sea"
if %Eleccion2%=0 GOTO(menu1)
:menu4
pause
echo. 1.
echo. 0.
set/p Eleccion4 = elige
if %Eleccion2%=1 start "C:\lo que sea"
if %Eleccion2%=0 GOTO(menu1)
:menu5
pause
echo. 1.
echo. 0.
set/p Eleccion5 = elige
if %Eleccion2%=1 start "C:\lo que sea"
if %Eleccion2%=0 GOTO(menu1)
Aquí te dejo el correcto uso de los menus.
@echo off
:menuprincipal
echo 1. Sumar
echo 2. Restar
set /P OPC=Elija una opcion [1/2]
if %OPC%==1 goto:suma
if %opc%==2 goto:resta
:suma
set /P N1=Numero:
set /P N2=Cantidad a sumar:
set /A RES=%N1%+%N2%
echo %RES%
pause
exit
:resta
set /P N1=Numero:
set /P N2=Cantidad a restar:
set /A RES=%N1%-%N2%
echo %RES%
pause
exit
Claro, es solo una muestra y una base. Para que te des una idea sobre como hacerlo, lo acabo de hacer y funciona correctamente.
PD: en tu código falta el menu 1.
Para la otra si no colocas el código con la etiqueta de código tu mensaje será eliminado sin advertencia.
se que es el molde, lo hice yo xD el caso es que cuando lo aplico, elijo una opcion en el primer menu , y en vez de acceder a uno secundario, directamente se cierra
gracias
vamos a ver, el fallo está muy claro.
set/p eleccion =
IF %eleccion%==1 (...)
¿Te das cuenta por ti mismo?
Setea la variable sin espacios, así:
set/p eleccion=
Saludos.
una nueva duda del mismo code.
cuando quiero accedo a un menu secundario,y en este elijo una opcion
quiero que se ejecute una aplicacion y que sin cerrarse la cmd esta vuelva al menu principal
lo estoy haciendo de la siguiente manera
if %variable%==1 ( cd "ruta al ejejutable" && ejecutable.exe && goto menuprincipal")
el caso es que cuando lo ago asi, la cmd espera a que el ejecutable.exe deje de ejecutarse para mostrarme el menu.
intente solventarlo con un call a otro bat pero nanai de la china
gracias
proba con solamente un and "&"
( cd "ruta al ejejutable" & ejecutable.exe & goto menuprincipal")
a ver q onda mmmmm
Cita de: Darioxhcx en 22 Julio 2011, 03:35 AM
proba con solamente un and "&"
No, eso no funcionará ni con 1 ni con 2 ni con 5 :xD
Cita de: Pirat3net en 22 Julio 2011, 03:32 AM
la cmd espera a que el ejecutable.exe deje de ejecutarse para mostrarme el menu.
obvio.
¿Porque no te lees un manual básico?
cd "ruta al ejejutable" eso funciona, pero también sobra!, no hace falta, para hacer eso es preferible escribir directamente la ruta del ejecutable entera....
IF %variable% EQU 1 (
Start /B C:\"Program Files\Programa.exe"
goto :menuprincipal
)
PD: Y fijate en como he usado las comillas con el comando
START, Si usas Windows 7 tienes que usarlas como el ejemplo, sin excepciones, no puedes entrecomillar la ruta entera en Win7. Si usas XP puedes entrecomillar la ruta del
START de forma normal.
saludos...