一个参数可以属于多个参数集吗?

时间:2014-09-18 20:48:57

标签: powershell

我有这段代码

Param(

  [Parameter(ParameterSetName='InsertException')]
  [switch]$insert,

  [Parameter(ParameterSetName='UpdateException')]
  [switch]$update,

  [Parameter(ParameterSetName='GetException')]
  [switch]$get,

  [Parameter(Mandatory=$True, ParameterSetName='UpdateException')]
  [string]$userName
 )

我希望在使用switch -update或-insert时,该参数$ userName是必需的,但在使用switch -get时不应询问参数$ username。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

查看帮助主题about_functions_advanced_parameters,它将告诉您如何执行此操作:

Param
(
    [parameter(Mandatory=$true,
               ParameterSetName="Computer")]
    [String[]]
    $ComputerName,

    [parameter(Mandatory=$true,
              ParameterSetName="User")]
    [String[]]
    $UserName

    [parameter(Mandatory=$false, ParameterSetName="Computer")]
    [parameter(Mandatory=$true, ParameterSetName="User")]
    [Switch]
    $Summary
)