在Powershell中,您可以将参数指定给参数集。您可以使用$PSCmdlet.ParameterSetName
检查哪个参数集。你有什么比这更聪明的了吗?轻松获得通过的那个参数中的所有参数?
我想要求paramset中只有一个参数被传递。想知道是否有更优雅的内置解决方案,而不是根据静态密钥列表检查和计算$ PSBoundParams。
答案 0 :(得分:0)
使用$PSBoundParameters
查找用户填充的参数。这是[HashTable]
,有几个奖金。
Ex.ps1:
[CmdletBinding()]
Param([Parameter(ParameterSetName='Custom1',Position=0)]
[String]$ex)
$PSBoundParameters.Keys
PS C:\>ex.ps1 Example!
> ex
或者,您可以使用Switch
上的$PSCmdlet.ParameterSetName
来处理参数。
Switch ($PSCmdlet.ParameterSetName)
{
'__AllParameterSets' { }
'Custom1' { }
}