¿Por qué mi script imprime mensajes incorrectos?

¿Por qué mi script imprime mensajes incorrectos?

Estoy trabajando con un script que tiene dos opciones posibles: Y= sí/operación 1 y N= no/cancelar operación. Siempre que elijo sí, el mensaje de cancelación se imprime primero,entoncesSe ejecuta la operación 1. Quiero que los mensajes adecuados solo aparezcan para las opciones correspondientes. Aquí está mi código:

@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

Respuesta1

set /p varName=Le pedirá que ingrese un valor para guardarlo varName. ifEs necesario comprobar sus declaraciones varNameen lugar de algo completamente diferente.

Actualmente estás configurando :choicey comprobando c. (%C%)

Intenta cambiar

set /p :choice= 
if /I "%c%" EQU "Y" goto :YES 
if /I "%c%" EQU "N" goto :NO

A

set /p choice= 
if /I "%choice%" EQU "Y" goto :YES 
if /I "%choice%" EQU "N" goto :NO

Tenga en cuenta que en mi ejemplo también eliminé el ":" antes de la "elección" en su set /pcomando, ya que parece innecesario y significaría que sus ifdeclaraciones deberían serif /I "%:choice%"

información relacionada