我只是在编写一个愚蠢的小程序,但我遇到的问题似乎很普遍。
以下是导致我出现问题的代码部分:
警告:该代码会打开谷歌搜索。
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
这是一个有效的命令。
进一步阅读
- Windows CMD 命令行的 AZ 索引- 与 Windows cmd 行相关的所有事物的绝佳参考。
- 如果- 有条件地执行命令。