Я пытаюсь вызвать функцию PowerShell с набором параметров, используя другую функцию PowerShell с набором параметров.В приведенном ниже коде я хочу позвонить на Entry-Point
, используя переключатель -ABC
или -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 : Parameter set cannot be resolved using the specified named
parameters.
At line:24 char:1
+ My-Function -ABC:$ABC -DEF:$DEF -Extra:$Extra
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [My-Function], ParameterBindingException
+ FullyQualifiedErrorId : AmbiguousParameterSet,My-Function
Как передать параметры -ABC
и -DEF
-был ли указан каждый или нет - из функции Entry-Point
в функцию My-Function
?