0
我想使用参数集并使用默认参数集。但默认参数集似乎并不适合我。任何帮助深表感谢。我可以很容易地使用默认行为的验证集,但我想知道我在这里做错了什么。Powershell默认参数集不起作用。错误
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"
测试脚本:参数集不能使用指定的命名参数来解决。
在行:1字符:1
+测试脚本 - 源 “C:\ somedirectory” -DestinationPath “C:\ someotherdirectory”
+ ~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~
+ CategoryInfo:InvalidArgument:(:) [测试脚本],ParameterBindingException
+ FullyQualifiedErrorId:AmbiguousParameterSet,测试脚本
感谢Mathias !!似乎已经解决了这个问题。 – tarunmunjal
好搭档!在我看来,我已经解析了各种设置哈哈 – briantist
@briantist当我看到'param([cmdl ...';) –