![¿Por qué mi script imprime mensajes incorrectos?](https://rvso.com/image/1558686/%C2%BFPor%20qu%C3%A9%20mi%20script%20imprime%20mensajes%20incorrectos%3F.png)
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
. if
Es necesario comprobar sus declaraciones varName
en lugar de algo completamente diferente.
Actualmente estás configurando :choice
y 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 /p
comando, ya que parece innecesario y significaría que sus if
declaraciones deberían serif /I "%:choice%"