Я хочу сделать все параметры в наборе параметров обязательными, но только в том случае, если один из параметров действительно указан (все или ничего). Итак, я хочу иметь возможность вызывать свою функцию как Test-Mandatory -Param1
или Test-Mandatory -Param1 -Param2 -Param3
. Поэтому, когда я указываю Param2, я хочу, чтобы Param3 был обязательным, и наоборот.
Я бы подумал, что что-то вроде следующего достигнет этого:
Function Test-Mandatory
{
Param
(
[switch]$Param1,
[Parameter(ParameterSetName='Set1', Mandatory)]
[switch]
$Param2,
[Parameter(ParameterSetName='Set1', Mandatory)]
[switch]
$Param3
)
}
Однако, когда я использую вышеизложенное, я не могу вызвать функцию как Test-Mandatory -Param1
, так как мне будет предложено указать значение для param2/param3. Я знаю, что могу добавить еще один параметр, добавить его в набор и сделать его необязательным, это позволило бы мне переключаться между наборами параметров с помощью переключателя, но я бы не стал этого делать. Есть ли другой способ решить эту проблему, которую я не замечаю?