Answers:
添加此内容以确保完整性...
与上述VB脚本最接近的PowerShell代码是:
PS C:\> switch (1) {
{$_ -eq 1 -or $_ -eq 3 -or $_ -eq 5 -or $_ -eq 7 -or $_ -eq 9} { "Odd"}
{$_ -eq 2 -or $_ -eq 4 -or $_ -eq 6 -or $_ -eq 8 -or $_ -eq 10} { "Even"}
}
Odd
PS C:\VSProjects\Virtus\App_VM> switch (2) {
{$_ -eq 1 -or $_ -eq 3 -or $_ -eq 5 -or $_ -eq 7 -or $_ -eq 9} { "Odd"}
{$_ -eq 2 -or $_ -eq 4 -or $_ -eq 6 -or $_ -eq 8 -or $_ -eq 10} { "Even"}
}
Even
因为VB脚本“选择大小写”通过“或”操作
Select Case testexpression
[Case expressionlist-n
[statements-n]] . . .
[Case Else
[elsestatements-n]]
End Select
“如果testexpression与任何Case表达式列表表达式匹配,则执行该Case子句之后的语句直到下一个Case子句...” 选择Case语句
我无法弄清楚的有趣的事情是这个结果:
PS C:\> switch (1) {
{1 -or 3 -or 5 -or 7 -or 9} { "Odd"}
{2 -or 4 -or 6 -or 8 -or 10} { "Even"}
}
Odd
Even
使用正则表达式可以轻松替代吗?
switch -regex ($myNumber)
{
"^[13579]$" { Write-Host "Odd" }
"^([2468]|10)$" { Write-Host "Even" }
default { Write-Host "Other" }
}
|10
。