我正在尝试使用另一个带有参数集的 PowerShell 函数来调用具有参数集的 PowerShell 函数。在下面的代码中,我想Entry-Point
使用-ABC
or-DEF
开关来调用,而不是同时使用。但是,当我Entry-Point
使用任意数量的参数运行时,会出现AmbiguousParameterSet
以下异常。
function My-Function {
[CmdletBinding(DefaultParameterSetName='ABC')]
Param(
[Parameter(Mandatory=$false, ParameterSetName='ABC', Position=1)]
[switch] $ABC,
[Parameter(Mandatory=$false, ParameterSetName='DEF', Position=1)]
[switch] $DEF,
[switch] $Extra
)
echo $ABC
echo $DEF
echo $Extra
}
function Entry-Point {
[CmdletBinding(DefaultParameterSetName='ABC')]
Param(
[Parameter(Mandatory=$false, ParameterSetName='ABC', Position=1)]
[switch] $ABC,
[Parameter(Mandatory=$false, ParameterSetName='DEF', Position=1)]
[switch] $DEF,
[switch] $Extra
)
My-Function -ABC:$ABC -DEF:$DEF -Extra:$Extra
}
My-Function : 无法使用指定的命名解析参数集 参数。 在行:24 字符:1 + 我的功能 -ABC:$ABC -DEF:$DEF -Extra:$Extra + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [My-Function], ParameterBindingException + FullyQualifiedErrorId : AmbiguousParameterSet,My-Function
如何将参数-ABC
和-DEF
- 无论是否指定每个参数 - 从函数Entry-Point
传递到函数My-Function
?