具有预定义变量的用户输入 - 批处理脚本

时间:2015-08-12 03:08:03

标签: batch-file if-statement user-input

我试图批量创建一个脚本,用户将输入他们的名字,然后再输入。但是,我希望用户能够输入,"我的名字是[姓名]"并考虑到这一点"正确"同样。

目前我的代码在它之前有用户输入时没有识别%name%变量,而是转到:不正确的标签。

代码:

@ CLS
@ set /P name="Type your name: "
@ set /P userinput="Type your name again: "
@ if /I "userinput"=="%name%" goto correct
@ if /I "userinput"=="my name is %name%" goto correct
@ goto :incorrect
@ :correct
@ CLS & echo Correct! & pause
@ :incorrect
@ CLS & echo Incorrect! & pause 

然而,我不会介意它考虑它"纠正"只要用户在其输入中键入其名称​​ somewhere ,因此我认为需要以某种方式解析输入以查找变量%name%是否存在于其中。

1 个答案:

答案 0 :(得分:0)

在if语句中测试时,你没有在{%}包装userinput,因此程序将其解释为纯文本而不是变量。尝试:

@ CLS
@ set /P name="Type your name: "
@ set /P userinput="Type your name again: "
@ if /I "%userinput%"=="%name%" goto correct
@ if /I "%userinput%"=="my name is %name%" goto correct
@ goto :incorrect
@ :correct
@ CLS & echo Correct! & pause
@ :incorrect
@ CLS & echo Incorrect! & pause