我在将用户输入的多字符串与Batch中的字符串变量进行比较时遇到了一些麻烦。这就是我所拥有的:
set twowordstring=Pi Rocks
echo What do you think about Pi?
set /p response=
if %response% EQU %twowordstring% goto correct
当运行cmd时关闭,但我看到了错误消息。我认为set / p只收集两个字输入的第二个字。请帮助,我设置输入错误或是否有不同的命令来收集整行? 感谢
答案 0 :(得分:2)
您的IF
声明导致了问题。
语法为if string equ string dosomething
由于您的响应和您正在进行比较的字符串中都有空格,处理器会看到
if Pi Rocks equ Pi Rocks goto correct
并且在第一个字符串之后需要equ
之类的比较运算符,因此对象为Rocks
并响应Rocks was unexpected at this time
要更正,只需将参数括在引号
中if "%response%" equ "%twowordsstring%" goto correct
您可以将if
更改为if /i
,以使比较不区分大小写。
另外,放置一个
pause
在战略点将阻止窗口关闭。