参数,如果存在开关,则不允许其他参数

时间:2016-06-27 08:34:50

标签: powershell

我有一个带有如下参数的函数:

param(
    [string[]]$ComputerName,
    [string]$exepath,
    [string[]]$exeargs,
    [switch]$help
)

如果使用此功能的用户使用-help开关,则不得声明任何其他参数来调用该功能。我想阻止任何人使用-help和其他参数。

我怎样才能实现这一目标?我读过about_Functions_Advanced_Parameters,但这对我没有帮助。我首先想到的是我需要的是ValidateSet,但这与我需要的不同。

1 个答案:

答案 0 :(得分:2)

您可以使用ParameterSetName属性:

param(
    [Parameter(ParameterSetName='default')]
    [string[]]$ComputerName,

    [Parameter(ParameterSetName='default')]
    [string]$exepath,

    [Parameter(ParameterSetName='default')]
    [string[]]$exeargs,

    [Parameter(ParameterSetName='help')]
    [switch]$help
)