【发布时间】:2021-09-13 13:14:36
【问题描述】:
我想在 powershell 中创建一个脚本,它会根据是否设置了哪些参数来做几件事。我的代码如下所示:
Param(
[parameter(Mandatory=$true,Position=1)]
[String]$var1 ,
[parameter(Mandatory=$false,Position=2)]
[int]$var2 ,
[parameter(Mandatory=$false,Position=3)]
[int]$var3 ,
[parameter(Mandatory=$false,Position=4)]
[string]$var4
)
....
然后我想做一个 if-elseif 来检查设置了哪些参数:
if (!$var2 -and !$var3 -and !$var4) {
... Do something with $var1
} elseif (!$var2 -and !$var3 -and $var4) {
... Do something with $var1 and $var4
} else {
throw an error
}
.. 或者如果更合适的话,做一个 switch case。我不能决定是不是。谁能想出一个小例子来做到这一点?提前致谢。感谢您抽出宝贵时间帮助我。
【问题讨论】:
-
好问题,但我不确定这是否基于意见。
Switch更优雅,更易于阅读 imo。你也可以使用$PSBoundParameters。 -
除了Mathias's helpful answer之外,您还可以将
switch与多个return语句一起使用。
标签: powershell switch-statement conditional-statements