windows if elseif powershell中的多个语句与equal with或不起作用[重复]

qlvxas9a  于 2023-03-24  发布在  Windows
关注(0)|答案(1)|浏览(110)

此问题在此处已有答案

PowerShell - Defining multiple IF statements outcomes(2个答案)
If / Else in Powershell not behaving as expected?(3个答案)
昨天关门了。
我找不到下面if else语句中的2(SIN和SHA)行有什么问题-or also.我试过-xor,试过用多个elseif来分隔行的单独的or条件,但在远程命令中不起作用。

if($site -eq 'HKG1') {...}
elseif($site -eq 'AMS1') {...}
elseif( ($site -eq 'SIN1') -or ($site -eq 'SIN3') ) {...}
elseif( ($site -eq 'SHA1') -or ($site -eq 'SHA2') -or ($site -eq 'SHA3') ) {...}
elseif($site -eq 'ASH1') {...}

如果我尝试这样做:

if($site -eq 'HKG1') {...}
elseif($site -eq 'AMS1') {...}
elseif($site -eq 'SIN1' -or 'SIN3') {...}
elseif($site -eq 'SHA1' -or 'SHA2' -or 'SHA3') {...}
elseif($site -eq 'ASH1') {...}

它在某些情况下工作,但如果必须进入AMS,它将降落在SIN并失败。

f87krz0w

f87krz0w1#

我会建议调查开关,而不是多个,如果

switch ($x)
{
    'value1' {}
    {$_ -in 'A','B','C'} {}
    'value3' {}
    Default {}
}

相关问题