2017-06-30 8 views
0

こんにちはこの機能では、デフォルトの「レポート」を使用する代わりに、「インストール」パラメータを$アクションスイッチに渡すことができますか?PSパラメータセットをスイッチに渡す

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と - アクションを行う際

はエラーをスローします 'インストール':

MyFuncと:位置パラメータは、 'インストール' の引数を受け入れることを見つけることができません。

ありがとうございます。

+0

を私のPowerShellはかなり錆びているので、私は間違っているかもしれないが、それはすべきではありません1はインストールですか? – Difster

答えて

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! 
+0

ありがとうございます...... – JPKI

関連する問題