Batch -Menü - bei "Enter" soll ohne Auswahl nichts ausgeführt werden
Hallo Gemeinde,
bei einem Batch-Menü wird bei mir bei Drücken der ENTER-Taste sofort der erste Menüpunkt ausgeführt,
obwohl keine Auswahl getroffen wurde. Dies soll aber erst bei Selektion passieren. Hier das Menü:
Bei Auswahl aller anderen Zeichen, die NICHT im Menü vorbelegt sind, wird ebenfalls zum 1. Punkt gesprungen,
Wie kann das verhindert werden?
@echo off
:MENU
echo take your choice
echo AW1 - 1
echo AW2 - 2
echo AW3 - 3
echo AW4 - 4
echo quit - x or X
set asw=0
set /P asw=Bitte Auswahl eingeben:
if %asw%==1 goto AW1
if %asw%==2 goto AW2
if %asw%==3 goto AW3
if %asw%==4 goto AW4
if %asw%==X goto:EOF
if %asw%==x goto:EOF
:AW1
echo.
echo.
echo AW1
echo.
echo.
GOTO MENU
:AW2
echo.
echo.
echo AW2
echo.
echo.
GOTO MENU
echo.
echo.
:AW3
echo.
echo.
echo AW3
echo.
echo.
GOTO MENU
echo.
echo.
:AW4
echo.
echo.
echo AW4
GOTO MENU
:EOF
bei einem Batch-Menü wird bei mir bei Drücken der ENTER-Taste sofort der erste Menüpunkt ausgeführt,
obwohl keine Auswahl getroffen wurde. Dies soll aber erst bei Selektion passieren. Hier das Menü:
Bei Auswahl aller anderen Zeichen, die NICHT im Menü vorbelegt sind, wird ebenfalls zum 1. Punkt gesprungen,
Wie kann das verhindert werden?
@echo off
:MENU
echo take your choice
echo AW1 - 1
echo AW2 - 2
echo AW3 - 3
echo AW4 - 4
echo quit - x or X
set asw=0
set /P asw=Bitte Auswahl eingeben:
if %asw%==1 goto AW1
if %asw%==2 goto AW2
if %asw%==3 goto AW3
if %asw%==4 goto AW4
if %asw%==X goto:EOF
if %asw%==x goto:EOF
:AW1
echo.
echo.
echo AW1
echo.
echo.
GOTO MENU
:AW2
echo.
echo.
echo AW2
echo.
echo.
GOTO MENU
echo.
echo.
:AW3
echo.
echo.
echo AW3
echo.
echo.
GOTO MENU
echo.
echo.
:AW4
echo.
echo.
echo AW4
GOTO MENU
:EOF
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 291253
Url: https://administrator.de/contentid/291253
Ausgedruckt am: 22.11.2024 um 21:11 Uhr
3 Kommentare
Neuester Kommentar
Moin,
vor dem ersten Punkt noch einen Sprung setzen entweder zurück ins Menü oder Skript beenden ...
Gruß jodel32
p.s. das :EOF ganz am Ende ist überflüssig
statt set /p kannst du auch choice einsetzen das piept bei einer falschen Eingabe und macht erst weiter wenn eine gültige Auswahl getroffen wurde.
vor dem ersten Punkt noch einen Sprung setzen entweder zurück ins Menü oder Skript beenden ...
goto MENU
:AW1
p.s. das :EOF ganz am Ende ist überflüssig
statt set /p kannst du auch choice einsetzen das piept bei einer falschen Eingabe und macht erst weiter wenn eine gültige Auswahl getroffen wurde.
Für ein einfaches Beispiel wie man das mit choice macht guckst du hier:
Batch Datei Menü programmieren
Batch Datei Menü programmieren