有没有办法通过IF语句来传递OR?在IF语句中使用OR WinXP批处理脚本
如:
SET var=two
IF "%var%"=="one" OR "two" OR "three" ECHO The number is between zero and four.
有没有办法通过IF语句来传递OR?在IF语句中使用OR WinXP批处理脚本
如:
SET var=two
IF "%var%"=="one" OR "two" OR "three" ECHO The number is between zero and four.
号
if "%var%"=="one" goto foo
if "%var%"=="two" goto foo
if "%var%"=="three" goto foo
goto afterfoo
:foo
echo The number is between one and three (technically incorrect, since it includes the end points and thus is not between).
:afterfoo
如果你需要一个更结构化的方法:
if "%var%"=="one" set OneToThree=1
if "%var%"=="two" set OneToThree=1
if "%var%"=="three" set OneToThree=1
if defined OneToThree (
echo Foo
) else (
rem something
)
想法=(。我一直试图用它欺骗它一段时间,但没有运气大声笑 – Mechaflash
你也可以使用这种方法:对于%% a在(一二三)如果“%var% “==”%% a“goto foo – Aacini
在游戏后期了一下,但仍然假定如果这可能会帮助任何人绊倒这个问题。我这样做的方法是使用回声的组合通过管道输送到FINDSTR,这种方式:
(echo ":one: :two: :three:" | findstr /i ":%var%:" 1>nul 2>nul) && (
echo The number is between zero and four
)
由于FINDSTR是一个外部命令,我建议不使用此一环,它可以经过反复的1000的内部。如果不是这种情况,这应该解决你试图做的事情,而不是使用多个ifs。另外,在选择“:”时没有什么特别的地方,只需使用一个不太可能成为var变量值的一部分的分隔符。
感谢其他人指出另一个似乎有类似问题的链接,我也会在这里发布这个回复,以防万一有人在这个问题上磕磕绊绊,而且还没有到达这里。
哎呀感谢编辑乔伊。 – Mechaflash