具有多个值的 Powershell Switch 语句

Ben*_*Ben 13 powershell

任何人都知道我如何拥有一个包含多个可能值的 switch 语句,如下例所示?

switch ($myNumber) {
   1 3 5 7 9 { write-host "Odd" }
   2 4 6 8 10 {write-host "Even" }
}
Run Code Online (Sandbox Code Playgroud)

曾经在 VBScript 中很容易,所以我确定我只是遗漏了一些简单的东西。

例如在 VBScript 中

Select Case myNumber 
   Case 1,3,5,7,9
      MsgBox "Odd"
   Case 2,4,6,8,10
      MsgBox "Even"
End Select
Run Code Online (Sandbox Code Playgroud)

提前加油,

小智 13

$myNumber = 3
$arrA = 1, 3, 5, 7, 9
$arrB = 2, 4, 6, 8, 10
switch ($myNumber) { 
    {$arrA -contains $_} { write-host "Odd" } 
    {$arrB -contains $_} { write-host "Even" }
}
Run Code Online (Sandbox Code Playgroud)


Joe*_*oey 12

在您的情况下,您可以简单地使用

switch ($myNumber) {
  { $_ % 2 -eq 1 } { "Odd" }
  { $_ % 2 -eq 0 } { "Even" }
}
Run Code Online (Sandbox Code Playgroud)

对您在 VB 中可以做什么进行建模的实际尝试可能类似于

switch ($myNumber) {
  { 1,3,5,7,9  -contains $_ } { "Odd" }
  { 2,4,6,8,10 -contains $_ } { "Even" }
}
Run Code Online (Sandbox Code Playgroud)