2017-05-24 5 views
0

目的はパラメータセット用です。私はパラメータセットの概念のために新しく、私はそれを理解することができませんでした。ParameterSetをオプションとして

  • スイッチ$opt1と切り替える$opt2が一緒に選択し、OKではありません!
  • スイッチ$opt1を選択して、OK!
  • スイッチ$opt2を選択して、OK!
  • スイッチが選択されていません。OK!
function Mytest { 
    Param(
     [Parameter(Mandatory=$false)][string]$intro="ParameterSet Practice", 
     [Parameter(Mandatory=$false, ParameterSetName='option1')][switch]$opt1, 
     [Parameter(Mandatory=$false, ParameterSetName='option2')][switch]$opt2 
    ) 

    Write-Verbose "$intro" -Verbose 
    if ($opt1) { 
     "You picked option 1!" 
    } elseif ($opt2) { 
     "You picked option 2!" 
    } else { 
     "You didn't pick an option!" 
    } 
} 

最初の3つのシナリオすべてが最後のものを除いて働きました。私はどこで間違えたのか教えてください。

答えて

0

私の質問を投稿した後で、私はそれを理解しました。私は、私がdefaultparameterを設定する必要が次のように解決法を知りませんでした:

function Mytest { 
    param(
     [CmdletBinding(DefaultParameterSetName="noOption")] 
     ... 
} 

コードに追加上記の行の後。第4の条件「スイッチが選択されていない、OK!満足している。

+0

他の代替ソリューションはありますか? –

+1

それはあなたがそれを行う方法です。 –

+0

@AnsgarWiechers多くの編集をありがとう! –

関連する問題