我正在尝试使用参数集和默认参数集。但是默认的参数集似乎不适用于我。任何帮助都是非常感谢的。我可以很容易地使用验证集与默认操作,但我想知道我做错了什么在这里。
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个
发布于 2016-07-14 21:47:54
attribute需要位于param块之外,紧接param关键字之前,否则它将被忽略:
[CmdletBinding(DefaultParametersetname="Directory")]
Param(
[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
)https://stackoverflow.com/questions/38384019
复制相似问题