Batch überspringung der Ansatzpunkte

#1
Guten Tag liebe Community,

Ich habe da ein kleines Problem und finde nichts im Internet, weil ich nicht weiß wie man diese Punkte richtig
bezeichnet. Und zwar moechte ich ein Quiz erstellen: (Bin neu im Batch programmieren :D)

Code:
@Echo off
cls
title Mensch
color a

:m
cls
echo ---------------------------------------------------------------------------- 
echo Willkommen bei dem Quiz "Mensch"
echo ----------------------------------------------------------------------------
echo Druecken Sie Enter um fortzufahren
pause>NUL

cls
set wahl=0
echo ----------------------------------------------------------------------------
echo 1.Frage
echo ----------------------------------------------------------------------------
echo Wie lange dauert eine Schwangerschaft einer Frau normalerweise?
echo 1) 2 Monate
echo 2) 5 Monate
echo 3) 9 Monate
echo 4) 2 Wochen
set/p %wahl%=Wahl:
if "%wahl%"=="1" goto f
if "%wahl%"=="2" goto f
if "%wahl%"=="3" goto r
if "%wahl%"=="4" goto f
if not "%wahl%"=="1"=="2"=="3"=="4" goto m
Bis hierhin passt alles. Das goto klappt auch.

Wenn ich jetzt die richtige Antwort auswaehle dann gehts zu r soweit ok. Doch danach nimmt er f noch mit rein. Wie kann man das verhindern das er den Punkt f nicht überspringt. Ist halt bloed wenn Richtig und gleich danach Falsch kommt :D
Code:
:r
echo ----------------------------------------------------------------------------
echo Richtig! +2 Punkte
echo ----------------------------------------------------------------------------
pause>NUL

:f
echo ----------------------------------------------------------------------------
echo Falsch! +0 Punkte
echo ----------------------------------------------------------------------------
pause>NUL
Hoffe ihr habt mich verstanden. Danke fuer alle Antworten.

Liebe Grueße Smoothie96
 
Zuletzt bearbeitet von einem Moderator:

sheel

I love Asm
#2
Hi

wenn das Script nach dem gezeigten Codeteil zu Ende ist, einfach ein exit vor :f machen.
Sonst sowas:
Code:
r
echo ----------------------------------------------------------------------------
echo Richtig! +2 Punkte
echo ----------------------------------------------------------------------------
pause>NUL

goto nachf

:f
echo ----------------------------------------------------------------------------
echo Falsch! +0 Punkte
echo ----------------------------------------------------------------------------
pause>NUL

:nachf
PS: Die "Ansatzpunkte" werden oft "Labels" genannt (auch Jumplabel, Gotolabel usw.usw.)
 

Neue Beiträge