简单的例子
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中没有冗长
答案 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