如何检查批处理中的字符串是否包含在列表中

时间:2016-03-11 23:01:14

标签: batch-file

我尽量避免使用批处理,因为我不喜欢语法,或缺乏内置的IDE,所以我几乎是初学者。我想要做的是编写一个安装程序,主要是在python中,但这部分必须批量完成,我已经编写了所有安装说明,但我现在仍然在检查用户的输入。我想要它做的是获取用户输入(完成),然后告诉它是yesYesy还是Y,如果是,则安装该计划的那一部分。我已经决定尝试使用列表,因为这似乎是最简单的方法,但我老实说从来没有批量使用它们,所以不知道它们是如何工作的。所以基本上我想检查列表中是否存在变量。

我知道之前可能已经提出这个问题了,但我找不到满足我问题的答案(诚然,我看起来更难,但我累了)。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

choice /c YN
If errorlevel 2 echo No Selected
If errorlevel 1 echo Yes Selected

我不喜欢发帖他们不喜欢批量然后提问的人。

答案 1 :(得分:1)

虽然choice(如Noodles' answer中所述)可能是此类用户输入查询的最佳方式,但我仍想向您展示另一种方法(仅使用内置命令):

set /P QUERY="Say yes or no: "
if /I not "%QUERY%"=="y" if /I not "%QUERY%"=="yes" goto :NO
:YES
echo You said "yes".
goto :SKIP
:NO
echo You said "no" or something else.
:SKIP
rem Continue script here...

set /P命令会提示您输入。连接的if命令构成一种逻辑 AND ;如果您输入noty以外的任何内容,则会与yes个关键字一起完成条件; /I开关使比较不区分大小写。

代替echo - s,您当然可以放置任何命令,或者goto代码中的其他位置。

请注意,需要启用命令扩展(根据Windows的默认设置)才能使其工作(在命令提示符窗口中输入set /?cmd /?以获取详细信息)。