Это можно сделать с помощью оператора IF и оператора -in
.
[CmdletBinding(DefaultParameterSetName='View')]
Param(
[Parameter(ParameterSetName='ChangeOne', Mandatory=$true)]
[Switch]$ChangeOne,
[Parameter(ParameterSetName='ChangeAll', Mandatory=$true)]
[Switch]$ChangeAll,
[Parameter(ParameterSetName='View', Mandatory=$false)]
[Switch]$View
)
if ($PSCmdlet.ParameterSetName -in 'View','ChangeAll') {
foreach () {
}
}
Вы можете использовать аналогичный подход с оператором -notin
. С -notin
, если вы решите добавить больше наборов параметров в будущем, они автоматически получат значение true.
if ($PSCmdlet.ParameterSetName -notin 'ChangeOne') {
foreach () {
}
}
Другим подходом будет продолжение использования Switch
и установка условия по умолчанию.
[CmdletBinding(DefaultParameterSetName='View')]
Param(
[Parameter(ParameterSetName='ChangeOne', Mandatory=$true)]
[Switch]$ChangeOne,
[Parameter(ParameterSetName='ChangeAll', Mandatory=$true)]
[Switch]$ChangeAll,
[Parameter(ParameterSetName='View', Mandatory=$false)]
[Switch]$View
)
switch ($PSCmdlet.ParameterSetName) {
'ChangeOne' { }
Default {
foreach () {}
}
}