即使与 powershell 不匹配,也要执行后续的 Switch 案例吗?

即使与 powershell 不匹配,也要执行后续的 Switch 案例吗?

所以我有以下 switch case,假设我输入 3,我应该得到输出

案例 3 案例 4 案例 5 案例 6

如果我输入 5,则 O/P :案例 5 案例 6

switch(1)
{
case 1 : { write-host "Case 1"}

case 2 : { write-host "Case 2"}

case 3 : { write-host "Case 3"}

case 4 : { write-host "Case 4"}

case 5 : { write-host "Case 5"}

case 6 : { write-host "Case 6"}

}

我怎样才能实现这个目标?

答案1

在案例陈述中使用比较,具体来说-ge(大于或等于):

$val=3
switch($val)  {
    {(1 -ge $_)} { write-host "Case 1" }
    {(2 -ge $_)} { write-host "Case 2" }
    {(3 -ge $_)} { write-host "Case 3" }
    {(4 -ge $_)} { write-host "Case 4" }

}

这是有效的,因为 Powershell 即使在第一次匹配后仍会继续评估可能的匹配 - 为了避免这种情况,您必须break在每个执行块中添加一个。

相关内容