批量检查变量是否为特定值

时间:2014-02-21 17:49:07

标签: variables batch-file if-statement

我找不到解决方案(或者对我来说太复杂了),我想通过输入设置变量

@echo off
set /p var="Choose (AV, RN or I) : " %=%
echo %var%

如果值是这三个中的一个然后继续(我将使用该变量来设置路径,复制,移动,开始...),否则转到退出。

2 个答案:

答案 0 :(得分:3)

if /i "%var%"=="AV" goto av
if /i "%var%"=="RN" goto rn
if /i "%var%"=="I" goto i

echo illegal input "%var%"

你想从那里做什么,你不透露。

/i之后的if表示 - 忽略大小写。如果您坚持认为案例应该匹配,请使用if "... - 即删除/i

答案 1 :(得分:2)

实现此目的的最简单方法是不检查变量,而是在call命令中使用其值,并将错误消息重定向到nul。这样,如果变量具有一些有效值,则调用适当的例程;否则,没有任何反应:

@echo off
set /p var="Choose (AV, RN or I) : " %=%
echo %var%
call :%var% 2> NUL
goto :EOF

:AV
echo Selected: AV
exit /B

:RN
echo Selected: RN
exit /B

:I
echo Selected: I
exit /B