【发布时间】:2020-02-13 21:20:46
【问题描述】:
我想强制参数集中的所有参数,但前提是实际指定了其中一个参数(全或无情况)。
所以我希望能够将我的函数称为Test-Mandatory -Param1 或Test-Mandatory -Param1 -Param2 -Param3。所以当我指定 Param2 时,我希望 Param3 是强制性的,反之亦然。
我原以为以下内容可以实现这一目标:
Function Test-Mandatory
{
Param
(
[switch]$Param1,
[Parameter(ParameterSetName='Set1', Mandatory)]
[switch]
$Param2,
[Parameter(ParameterSetName='Set1', Mandatory)]
[switch]
$Param3
)
}
但是,当我使用上述方法时,我无法将该函数调用为Test-Mandatory -Param1,因为它会提示我为 param2/param3 提供一个值。
我知道我可以添加另一个参数,将其添加到集合中,并使其成为非强制性的,这将使我能够使用开关在参数集之间切换,但我宁愿不这样做。
还有其他方法可以解决我忽略的问题吗?
【问题讨论】:
标签: powershell parameters parameter-sets