我正在使用一个有两个可能选择的脚本: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%"