为什么我的脚本打印了错误的消息?

为什么我的脚本打印了错误的消息?

我正在使用一个有两个可能选择的脚本:Y= 是/操作 1 和 N= 否/取消操作。每当我选择是时,都会首先打印取消消息,然后操作 1 被执行。我希望只有相应的选择才会显示正确的消息。这是我的代码:

@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

答案1

set /p varName=将提示您输入要保存的值varName。您的if语句需要检查,varName而不是完全不同的东西。

目前您正在设置:choice和检查c。(%c%)

尝试改变

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

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

请注意,在我的示例中,我还删除了命令中“选择”之前的“:”,set /p因为它似乎是不必要的,并且意味着您的if语句需要if /I "%:choice%"

相关内容