输入 2 个单词的答案会导致批处理文件崩溃。我该如何避免这种情况?

输入 2 个单词的答案会导致批处理文件崩溃。我该如何避免这种情况?

我只是在编写一个愚蠢的小程序,但我遇到的问题似乎很普遍。

以下是导致我出现问题的代码部分:

警告:该代码会打开谷歌搜索。

set /a c=0
:Longcat
CLS
Echo.
ECHO *****************************************************************
ECHO.
echo            How LONG is this cat?
echo.
echo *****************************************************************
Echo.
timeout 5 >nul
If %c%==0 start https://www.google.com/search?q=LongCat
set /a c=%c%+1
If %c%==10 goto incorrect
Set /p cat=
If %cat%==long goto correct
goto Longcat
:correct
Echo correct
pause
Goto geometric
:incorrect
echo incorrect
pause
goto geometric

当我输入单词响应/p cat=(如big或)时tall,程序运行正常(继续GOTO LONGCAT)。

但是,一旦我使用两个字的答案,例如very big,我就会收到错误:

这时候big==long是出乎意料的。

有人可以解释或解决这个问题吗?

答案1

有人可以解释或解决这个问题吗?

If %cat%==long goto correct

如果输入,very big则上述命令将扩展为:

If very big==long goto correct

这是一个语法错误:

这时候big==long是出乎意料的。

您需要"在比较中添加引号(s)if来比较多字输入:

If "%cat%"=="long" goto correct

现在,如果您输入very big,则上述命令将扩展为:

If "very big"=="long" goto correct

这是一个有效的命令。


进一步阅读

相关内容