Я хочу сделать все параметры в наборе параметров обязательными, но только если фактически указан один из параметров (все или ни одной ситуации). Поэтому я хочу иметь возможность вызывать мою функцию как 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. Я знаю, что мог бы добавить другой параметр, добавить это в набор и сделать его необязательным, это позволило бы мне переключаться между наборами параметров с помощью переключателя, но я бы предпочел этого не делать. Есть ли другой способ решить это, что я пропускаю?