多字用户输入与批量变量相比较

时间:2013-04-03 23:59:57

标签: input batch-file comparison

我在将用户输入的多字符串与Batch中的字符串变量进行比较时遇到了一些麻烦。这就是我所拥有的:

    set twowordstring=Pi Rocks
    echo What do you think about Pi?    
    set /p response=
    if %response% EQU %twowordstring% goto correct

当运行cmd时关闭,但我看到了错误消息。我认为set / p只收集两个字输入的第二个字。请帮助,我设置输入错误或是否有不同的命令来收集整行? 感谢

1 个答案:

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

在战略点将阻止窗口关闭。