所以,我正在玩Batch一点点,我遇到了一个我觉得你们可以帮忙的问题。所以我试图做一个你可以在一个问题上回答是或否的事情,如果你不回答是也不是,那么它会告诉你这不是一个有效的答案。您可以在这里查看代码。
:Choice
set /p Choice=Is a stone a stone?
if %Choice%==Yes goto Correct
if %Choice%==No goto Incorrect
else goto Invalid
:Correct
echo You are correct!
pause
goto end
:Incorrect
echo You are incorrect!
pause
goto end
:Invalid
echo You did not enter a valid answer.
pause
goto end
:end
exit
所以我不能像我在代码中那样使用Else,但是你知道我会如何做同样的事情,如果它有效吗?听起来有点混乱,希望你理解。只是为了澄清,这里有一点我不知道该怎么做:
else goto Invalid
答案 0 :(得分:3)
在你的两个if
陈述之后,请忽略其他字,并获得无条件转到。
set /p Choice=Is a stone a stone?
if %Choice%==Yes goto Correct
if %Choice%==No goto Incorrect
goto Invalid
答案 1 :(得分:0)
更正答案:您可以在下面找到有关使用ELSE的信息。然而,大卫的答案更优雅:
答案 2 :(得分:0)
大卫的回答是正确的。我只添加这个答案(使用你的代码)来向你展示ELSE确实存在以及你如何使用它。请注意,如果变量中有空格或特殊字符,或者变量为空,则在字符串上使用引号。我还使用/ i来指定不区分大小写的比较。注意,)else(必须在同一条线上。它可能与它上面的线在同一条线上;或者所有这三条线都可以在一条线上。
:Choice
set /p Choice=Is a stone a stone?
if /i "%Choice%"=="Yes" goto Correct
if /i "%Choice%"=="No" (goto Incorrect
) else (
goto Invalid)
:Correct
echo You are correct!
goto end
:Incorrect
echo You are incorrect!
goto end
:Invalid
echo You did not enter a valid answer.
pause
goto :Choice
:end
pause
exit