Por que meu script está imprimindo mensagens erradas?

Por que meu script está imprimindo mensagens erradas?

Estou trabalhando com um script que possui duas opções possíveis: Y= sim/operação 1 e N= não/cancelar operação. Sempre que escolho sim, a mensagem de cancelamento é impressa primeiro,entãoa operação 1 é executada. Quero que as mensagens adequadas apareçam apenas para as opções correspondentes. Aqui está o meu 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

Responder1

set /p varName=solicitará que você insira um valor a ser salvo em varName. Suas ifdeclarações precisam ser verificadas, varNamee não algo completamente diferente.

Atualmente você está configurando :choicee verificando c. (%c%)

Tente mudar

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

Para

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

Observe que no meu exemplo também removi o ":" antes da "escolha" no seu set /pcomando, pois parece desnecessário e significaria que suas ifdeclarações precisariam serif /I "%:choice%"

informação relacionada