是否可以通过IF语句检查两个标准?或者它必须是两个IF语句?
我想说的是“如果用户名是'owen'或'oiverson',那么GOTO就是这样......”
答案 0 :(得分:1)
没有!但是有很多不同的解决方法。 试试这个:
set username=Owen
set found=no
if [%username%]==[Owen] set found=yes
if [%username%]==[oiverson] set found=yes
if %found%==yes goto :yes
goto :no
:yes
@echo Found user
:no
答案 1 :(得分:0)
您可以将两个if
语句与goto
一起使用,如下所示:
rem assuming variable %user% holds the value to check:
if "%user%"=="owen" goto :CondTrue
if "%user%"=="oiverson" goto :CondTrue
:CondFalse
rem ... (none of the conditions is fulfilled)
goto :Continue
:CondTrue
rem ... (one or both conditions are met)
:Continue
rem ...
答案 2 :(得分:0)
取决于具体情况。例如,如果要检查名称列表中是否包含用户名(似乎是这种情况),则可以使用此方法:
setlocal EnableDelayedExpansion
set "validNames=/owen/oiverson/"
if "!validNames:/%userName%/=!" neq "%validNames%" (
echo "%userName%" is included in this list: "%validNames%"
)
当然,有效名称列表可能包含任意数量的名称。
如果您希望两个变量都具有特定的特定值(对所有变量都是AND),请使用:
if "%user%+%version%" equ "expected_user+expected_ver" (
echo Both variables have the target values
)
您可以通过这种方式检查两个以上的变量。
正如我之前所说,取决于具体情况......