小编JHR*_*JHR的帖子

PowerShell 无法根据位置参数的数量选择正确的 ParameterSet

我正在尝试编写一个Set-MyRef使用 ParameterSets 来公开其可用参数的 PowerShell 函数。我希望该函数具有类似于以下内容的参数集:

Set-MyRef -Latest

Set-MyRef -LocalBranch

Set-MyRef [-Tag] <string>

Set-MyRef [-Env] <string> -LocalBranch

Set-MyRef [-Env] <string> -Latest

Set-MyRef [-Env] <string> [-Tag] <string>
Run Code Online (Sandbox Code Playgroud)

也就是说,恰好有一个 options -Latest-LocalBranch或者-Tag可以给出一个可选的-Env作为第一个位置参数。
重要的是,我希望Set-MyRef 'foo'被解析为-Tag 'foo',并被Set-MyRef 'foo' 'bar'解析为-Env 'foo' -Tag 'bar'.

我尝试使用 ParameterSets 来实现它:

function Set-MyRef {
    [CmdletBinding()]
    param (
        [Parameter(Position = 0, Mandatory = $true, ParameterSetName = 'EnvTag')]
        [Parameter(Position = 0, Mandatory = $true, ParameterSetName = 'EnvLatest')] …
Run Code Online (Sandbox Code Playgroud)

powershell parameter-sets powershell-7

5
推荐指数
1
解决办法
93
查看次数

标签 统计

parameter-sets ×1

powershell ×1

powershell-7 ×1