![Warum druckt mein Skript die falschen Nachrichten?](https://rvso.com/image/1558686/Warum%20druckt%20mein%20Skript%20die%20falschen%20Nachrichten%3F.png)
Ich arbeite mit einem Skript, das zwei Auswahlmöglichkeiten bietet: J = ja/Operation 1 und N = nein/Operation abbrechen. Immer wenn ich ja wähle, wird zuerst die Meldung zum Abbrechen gedruckt.DannOperation 1 wird ausgeführt. Ich möchte, dass die richtigen Nachrichten nur für die entsprechenden Auswahlmöglichkeiten angezeigt werden. Hier ist mein Code:
@ECHO OFF
:choice
echo.
echo Do you want to proceed with the process?
echo Enter Y to run or N to cancel.
set /p :choice=
if /I "%c%" EQU "Y" goto :YES
if /I "%c%" EQU "N" goto :NO
:NO
echo The operation has been cancelled...
PAUSE
goto :END
:YES
:: Additional code for operation 1 goes here.
echo The operation has been completed successfully!
PAUSE
:END
Antwort1
set /p varName=
Sie werden aufgefordert, einen Wert einzugeben, der in gespeichert werden soll varName
. Ihre if
Anweisungen müssen überprüft werden, varName
nicht etwas völlig anderes.
Derzeit legen Sie fest :choice
und prüfen c
. (%c%)
Versuchen Sie, etwas zu ändern
set /p :choice=
if /I "%c%" EQU "Y" goto :YES
if /I "%c%" EQU "N" goto :NO
Zu
set /p choice=
if /I "%choice%" EQU "Y" goto :YES
if /I "%choice%" EQU "N" goto :NO
Beachten Sie, dass ich in meinem Beispiel auch das ":" vor der "Auswahl" in Ihrem set /p
Befehl entfernt habe, da es unnötig erscheint und bedeuten würde, dass Ihre if
Anweisungenif /I "%:choice%"