我使用批处理文件在CMD上创建了一个简单的谜语程序。我希望这样的答案,如一个可以回答为1。到目前为止,我有这个:
:Riddle_1
cls
echo.
echo I shake the earth with booming thunder
echo fell forests whole and homes complete.
echo I influence ships, topple kings
echo sweep down swift yet remain unseen.
echo.
set /p answer=What am I?
if %answer%==wind (goto Riddle_2) else (goto Riddle_1)
当我尝试:
if %answer%==wind (goto Riddle_2) else (goto Riddle_1)
if %answer%==Wind (goto Riddle_2) else (goto Riddle_1)
它完全忽略了第二个命令,其他变种会这样做,或者他们会忽略else命令并在答案错误时转到下一个问题。
有没有解决这个问题?
答案 0 :(得分:2)
/i
使比较大小写不敏感,双引号使其在各种方面更加健壮。
if /i "%answer%"=="wind" (goto Riddle_2) else (goto Riddle_1)
答案 1 :(得分:0)
你可以这样做
set res=false
if %answer%==wind set res=true
if %answer%==Wind set res=true
if "%res%"=="true" (
goto Riddle_2
)
else
(
goto Riddle_1
)