PowerShell中如何在switch语句中使用列表简化条件判断
PowerShell Switch多条件判断简化方案
针对你想简化Switch语句中多-or条件的需求,有两种简洁的实现方式,完全保留Switch结构,不用改成If语句:
方法1:使用-in运算符(脚本块形式)
利用PowerShell 3.0及以上版本支持的-in运算符,直接判断当前值是否在指定集合中,替代多个-or:
Switch ($a) { { $_ -in "option1", "option2" } { 执行相同操作... } # 后续多选项子句示例 { $_ -in "option3", "option4", "option5" } { 执行另一操作... } }
方法2:直接指定多值Case(最简洁)
Switch本身支持将多个匹配值用逗号分隔作为单个Case,PowerShell会自动匹配其中任意一个值,写法更清爽:
Switch ($a) { "option1", "option2" { 执行相同操作... } # 4-5个选项的子句示例 "option3", "option4", "option5", "option6" { 执行对应操作... } # 单值Case也可以正常写 "option7" { 执行单独操作... } }
这两种方法都能大幅减少代码冗余,尤其是方法2,完全不需要额外的逻辑判断语法,最适合你后续多子句、多选项的场景。
内容的提问来源于stack exchange,提问作者Tufty
相关产品推荐
相关产品推荐

