Я пытаюсь использовать набор параметров и использовать набор параметров по умолчанию. Но набор параметров по умолчанию, похоже, не работает для меня. Буду признателен за любую оказанную помощь. Я могу легко использовать набор проверки с действием по умолчанию, но я хочу знать, что я делаю неправильно здесь.Powershell defaultparameterset не работает. Ошибка
Param([cmdletbinding(DefaultParametersetname="Directory")]
[Parameter(Mandatory=$false,ParameterSetName="File")]
[switch]$file,
[Parameter(Mandatory=$false,ParameterSetName="Directory")]
[switch]$directory,
[Parameter(Mandatory=$false,ParameterSetName="File")]
[Parameter(Mandatory=$false,ParameterSetName="Directory")]
[string]$Source,
[Parameter(Mandatory=$true,ParameterSetName="File")]
[Parameter(Mandatory=$true,ParameterSetName="Directory")]
[string]$DestinationPath,
[Parameter(Mandatory=$false,ParameterSetName="Directory")]
[Parameter(Mandatory=$false,ParameterSetName="File")]
[array]$Servers
PS C:\> Test-Script -Source "c:\somedirectory" -DestinationPath "c:\someotherdirectory"
Test-Script: набор параметров не могут быть решены с помощью указанных именованных параметров.
В строке: 1 символ: 1
+ Test-Script -source "C: \ somedirectory" -DestinationPath "C: \ someotherdirectory"
+ ~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~
+ CategoryInfo: InvalidArgument: (:) [Тест-скрипт], ParameterBindingException
+ FullyQualifiedErrorId: AmbiguousParameterSet, Тест-Script
Thanks Mathias !! что, похоже, решило проблему. – tarunmunjal
Хорошая добыча! На мой взгляд, я уже разбирал различные наборы haha – briantist
@briantist что-то в моем сознании начинало подергиваться, когда я видел 'param ([cmdl ...';) –