这是我试图以批处理文件的形式制作的问答游戏的基础。我是新手,所以我做错事并非不可能。我想要的是让它转到正确的区域,并在此演示中返回到开头,但是在最终版本中转到下一个问题。目前发生的情况是它只是转到第一个子例程而不是指定的子例程。提前谢谢你
@ECHO OFF
:start
echo Will you say yes or no?
set /p dummy=Say yes or no...
if "%INPUT%"=="yes" goto yes
if "%input%"=="no" goto no
if not "%input%"=="yes" goto lol
if not "%input%"=="no" goto lol
:yes
echo this worked
pause
echo Time for a repeat
pause
goto start
:no
echo this still worked
pause
echo Time for a repeat
pause
goto start
:lol
echo You did not put in yes or no. Try again
goto start
>input
是你之后使用的变量名,所以尝试
set /p input=Say yes or no...
而不是dummy
.
然后:
if not "%input%"=="yes" goto lol
if not "%input%"=="no" goto lol
既然你之前已经抓住了"是",not "%input%"=="yes"
在这里总是正确的。永远无法到达下一行。目前,如果它应该处理"所有其他",您可以简单地用goto lol
替换这两行。
试试这个
@ECHO OFF
:start
echo Will you say yes or no?
set /p input=Say yes or no...
if "%input%"=="yes" goto yes
if "%input%"=="no" goto no
if not "%input%"=="yes" goto lol
if not "%input%"=="no" goto lol
:yes
echo this worked
pause
echo Time for a repeat
pause
goto start
:no
echo this still worked
pause
echo Time for a repeat
pause
goto start
:lol
echo You did not put in yes or no. Try again
goto start
希望这有效