
Beispiel:
@echo off
goto menu1
:menu1
cls
echo Menu 1
echo.
echo Press "1" to start control panel
echo.
echo Press "2" to go to second menu
echo.
choice /c 12
if errorlevel ==2 goto menu2
if errorlevel ==1 goto control panel
:menu2
cls
echo Menu 2
echo.
echo Press "1" start msconfig
echo.
echo Press "2" to go to first menu
echo.
choice /c 12
if errorlevel ==2 goto menu1
if errorlevel ==1 goto msconfig
:control panel
cls
start control
goto menu1
:msconfig
cls
start msconfig
goto menu1
Wenn ich also dabei binMenü1und ich drücke 2, dann geht es zuMenü2.
Wenn ich dabei binMenü2und ich drücke 2, dann geht es zuMenü1,
aber wenn ich dabei binMenü2und ich drücke 1, um msconfig zu öffnen, öffnet es stattdessen die Systemsteuerung inMenü1währendMenü2ist noch geöffnet, warum ist das so?
Antwort1
Dazu können (sollten) Sie den if-Befehl und nicht die Fehlerebene verwenden. Sie müssen auch Benutzereingaben in eine Variable wie diese erhalten: set /p examplemenu1= Geben Sie Ihre Auswahl ein^> Dadurch wird die Auswahl des Benutzers in examplemenu1 eingefügt, dann verwenden Sie den if-Befehl.
Ich zeige Ihnen eine bessere Möglichkeit, ein Menü zu schreiben und Ihr Problem zu beheben. Wenn in diesem Menü jemand nichts eingibt, passiert nichts.
@echo off
:start
:menu1
cls
echo.
echo.
echo Enter 1 and Press Enter to open control panel
echo.
echo Enter 2 and Press Enter to go menu 2
echo.
set /p menu1= Enter your choice then Press Enter^>
if "%menu1%" EQU "1" goto :open-control
if "%menu1%" EQU "2" goto :menu2
goto :menu1
:menu2
Cls
REM I will do the basics
echo Menu 2
echo Type 1 to open msconfig
echo.
echo Type 2 to go back to menu 1
echo.
set /p menu2= Enter your choice and press enter^>
if "%menu2%" EQU "1" goto :open-msconfig
if "%menu2%" EQU "2" goto :menu1
goto :menu2
:open-control
cls
start control
REM People will ping a invalid host to wait
REM But they don't know that you can just use localhost
ping localhost -n 3 >nul
goto :start
:open-msconfig
Cls
start msconfig
ping localhost -n 3 >nul
goto :start
Testen Sie es und antworten Sie, wenn es für Sie funktioniert.