如何对同一IF语句使用多个答案

时间:2014-06-27 12:23:07

标签: batch-file cmd

我使用批处理文件在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命令并在答案错误时转到下一个问题。

有没有解决这个问题?

2 个答案:

答案 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
)