小编Ale*_*lex的帖子

当传递参数与其他参数的特定组合时,“无法解析参数集”

我编写了一个使用四个参数和四个参数集的函数。第一个参数$Path未分配给集合,因此属于所有集合。它也是强制性的,并且是唯一可以从管道传递的参数。但是,当我在管道末尾调用函数时使用其他三个参数的某些组合(所有这些参数都属于四组的某些组合)执行此操作时,我收到一条错误,指示该组不明确。

这是我的功能:

function Foo-Bar {
    [CmdletBinding(DefaultParameterSetName = 'A')]

    param (
        [Parameter(Mandatory = $true,
            ValueFromPipeline = $true)]
        [ValidateNotNullOrEmpty()]
        [string[]] $Path,

        [Parameter(ParameterSetName = 'A')]
        [Parameter(ParameterSetName = 'A-Secure')]
        [Switch] $OutputToConsole,

        [Parameter(Mandatory = $true,
            ParameterSetName = 'B')]
        [Parameter(Mandatory = $true,
            ParameterSetName = 'B-Secure')]
        [int] $OutputMode,

        [Parameter(Mandatory = $true,
            ParameterSetName = 'A-Secure')]
        [Parameter(Mandatory = $true,
            ParameterSetName = 'B-Secure')]
        [Switch] $Login
    )

    $PSCmdlet.ParameterSetName
}
Run Code Online (Sandbox Code Playgroud)

所有可能的参数组合如下:

PS C:\> Foo-Bar -Path "C:\Test.jpg"
A
PS C:\> Foo-Bar -Path "C:\Test.jpg" -OutputToConsole
A
PS C:\> Foo-Bar -Path "C:\Test.jpg" -OutputToConsole …
Run Code Online (Sandbox Code Playgroud)

powershell pipeline parameter-sets

2
推荐指数
1
解决办法
2339
查看次数

标签 统计

parameter-sets ×1

pipeline ×1

powershell ×1