您好在此功能中如何通过'安装' $ action开关的参数,而不是使用默认的'报告' ?
Function MyFunc()
{
[CmdletBinding(DefaultParameterSetName = 'Report',
PositionalBinding = $true)]
param
(
[Parameter(ParameterSetName = 'Report',
Position = 0)]
[Parameter(ParameterSetName = 'Install',
Position = 0)]
[switch]$Action
)
switch ($PsCmdlet.ParameterSetName)
{
'Report' {
Write-Output "Report chosen!"
break
}
'Install' {
Write-Output "Install chosen!"
break
}
}
}
当我做的时候
MyFunc -Action'安装'
引发错误:
MyFunc:找不到接受参数的位置参数'安装'。
谢谢。
答案 0 :(得分:1)
如果您只想支持一个参数:
Function MyFunc()
{
[CmdletBinding(DefaultParameterSetName = 'Report',
PositionalBinding = $true)]
param
(
[Parameter(ParameterSetName = 'Action',
Position = 0)]
$Action
)
switch ($Action)
{
'Report' {
Write-Output "Report chosen!"
break
}
'Install' {
Write-Output "Install chosen!"
break
}
}
}
Get-Help MyFunc
MyFunc -Action 'Install'
执行它:
C:\code> powershell.exe .\test.ps1
NAME
MyFunc
SYNTAX
MyFunc [<CommonParameters>]
MyFunc [[-Action] <Object>] [<CommonParameters>]
ALIASES
None
REMARKS
None
Install chosen!