我找不到解决方案(或者对我来说太复杂了),我想通过输入设置变量
@echo off
set /p var="Choose (AV, RN or I) : " %=%
echo %var%
如果值是这三个中的一个然后继续(我将使用该变量来设置路径,复制,移动,开始...),否则转到退出。
答案 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