我希望我的 Powershell 脚本能够处理两个参数集,如下所示。
设置 1:
- 参数 1:
GroupName
通过管道 - 参数2:
FilePath
- 像这样调用:
"GROUPNAME" | script.ps1 FilePath
第 2 组:
- 参数1:
GroupName
- 参数2:
FilePath
- 像这样调用:
script.ps1 GroupName FilePath
在这两种情况下,两个参数都是强制性的。
我已经尝试了我能想到的一切,我认为我得到的最接近的是:
[CmdletBinding(DefaultParameterSetName="Pipe")]
param (
[Parameter(Mandatory=$true,Position=0,ValueFromPipeline=$false,HelpMessage="AD Group Name",ParameterSetName="Param")]
[Parameter(Mandatory=$true,ValueFromPipeline=$true,HelpMessage="AD Group Name",ParameterSetName="Pipe")]
[ValidateNotNullOrEmpty()]
[String]$GroupName,
[Parameter(Mandatory=$true,Position=1,ValueFromPipeline=$false,HelpMessage="Path to CSV",ParameterSetName="Param")]
[Parameter(Mandatory=$true,Position=0,ValueFromPipeline=$false,HelpMessage="Path to CSV",ParameterSetName="Pipe")]
[ValidateNotNullOrEmpty()]
[String]$FilePath
)
这不起作用,因为它总是期望位置 1 的第二个参数;有任何想法吗?