通过paramset获取参数?

时间:2017-09-01 16:03:33

标签: powershell

在Powershell中,您可以将参数指定给参数集。您可以使用$PSCmdlet.ParameterSetName检查哪个参数集。你有什么比这更聪明的了吗?轻松获得通过的那个参数中的所有参数?

我想要求paramset中只有一个参数被传递。想知道是否有更优雅的内置解决方案,而不是根据静态密钥列表检查和计算$ PSBoundParams。

1 个答案:

答案 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' { }
}