好的,我有这个:
:ask SET /p answer = Hello user. Do you want to use this program? (y/n) IF [/i] %answer% == y GOTO yes IF [/i] %answer% == n (GOTO no) ELSE (ECHO Your input was not accepted. Please try again. & GOTO ask) :yes ... ... :no pause
问题是这两个if语句都返回false,并不断要求我的input。 我想这样做,如果答案不是y或n,用户必须重新input他们的答案。
任何帮助?
谢谢
删除等号左侧的空格,以避免用名称中的空格声明变量。 添加引号以避免某些字符出现问题(&<> |)
SET /p "answer=Hello user. Do you want to use this program? (y/n)"
IF命令中的忽略情况不包括[]。 另外,添加引号以避免空答案的问题。
IF /i "%answer%"=="y" GOTO yes
answer
后删除空格:
SET /p answer= Hello user. Do you want to use this program? (y/n)
在您的原始代码中,您正在创建一个名为%answer %
的变量,而不是%answer%
编辑删除IF
条件中的矩形括号…
:ask @echo off SET /p answer= Hello user. Do you want to use this program? (y/n) IF /i "%answer%" == "y" GOTO :yes IF /i "%answer%" == "n" ( GOTO :no ) ELSE ( ECHO Your input was not accepted. Please try again. GOTO :ask ) :yes rem :no rem pause