在一个示例脚本中,如果我的变量匹配1,我想执行一个代码块;如果它匹配2、3、5或8,我想另执行一个,如果它匹配4、6或7,我想再执行一个不同的代码块。
我想做这样的事情:
switch($x)
{
1 {'Condition 1'}
2 -or 3 -or -5 -or 8 {'Condition 2'}
4 -or 6 -or 7 {'Condition 3'}
}
但这行不通。有没有一种方法可以用switch完成这类工作,而不必单独列出所有8个选项,或者多个if语句是唯一的方法?
另一个选项,如果您想将值视为数字而不是字符串:
switch ($x)
{
1 {'Condition 1'}
{$_ -in 2,3,5,8} {'Condition 2'}
{$_ -in 4,6,7} {'Condition 3'}
}
您可以使用-Regex选项并执行以下操作:
switch -Regex ($x)
{
'1' {'Condition 1'}
'[2358]' {'Condition 2'}
'[467]' {'Condition 3'}
}