Warum druckt mein Skript die falschen Nachrichten?

Warum druckt mein Skript die falschen Nachrichten?

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 ifAnweisungen müssen überprüft werden, varNamenicht etwas völlig anderes.

Derzeit legen Sie fest :choiceund 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 /pBefehl entfernt habe, da es unnötig erscheint und bedeuten würde, dass Ihre ifAnweisungenif /I "%:choice%"

verwandte Informationen