获取不是"常用参数的绑定参数"?

时间:2015-12-15 16:32:03

标签: powershell

简单的例子

function Verb-Noun
{
    [CmdletBinding()]
    Param
    (
        [Parameter(Mandatory=$true,
                   ValueFromPipelineByPropertyName=$true,
                   Position=0)]
        $Param1,

        [int]
        $Param2
    )

    Begin
    {
    }
    Process
    {
        $PSBoundParameters
    }
    End
    {
    }
}

Verb-Noun 'some param value' -Verbose

ofc返回

Key     Value           
---     -----           
Verbose True            
Param1  some param value

那么,如何获取所有绑定参数而不是[CmdletBinding()]提供的常用参数? ......在abobe中没有冗长

1 个答案:

答案 0 :(得分:4)

没有特定的内置方法可以做到这一点,但您可以从哈希表中删除公共参数。要以编程方式列出常用参数,请参阅this question

我正在使用PowerShell 2 answer from that question,所以我们可以这样做:

Function Get-egCommonParameterNames
{
    [CmdletBinding()]
    param()
    process
    {
        (Get-Command Get-egCommonParameterNames).Parameters.Keys
    }
}

$myParams = [hashtable]$PSBoundParameters
Get-egCommonParameterNames | ForEach-Object { $myParams.Remove($_) }

Do note that each step of a pipeline could have different bound parameters