我想让参数集中的所有参数都是强制性的,但前提是实际指定了其中一个参数(全部或无情况)。所以我希望能够将我的函数称为Test-Mandatory -Param1
or 或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
)
}
但是,当我使用上述方法时,我不能调用函数 as Test-Mandatory -Param1
,因为它会提示我为 param2/param3 提供一个值。我知道我可以添加另一个参数,将其添加到集合中,并使其成为非强制性的,这将使我能够使用开关在参数集之间切换,但我宁愿不这样做。还有另一种方法可以解决我忽略的问题吗?