-1

質問:powershellコマンドレットでオプションのパラメータを処理する方法

パラメータを受け取り、電子メールを送信するコマンドレットを作成しています。 "Cc"はパラメータの1つです。必須ではありません。 今日のコードを送る-はMailMessage(次の段落など)を起動する2行を示しているが、私はそれを書くには良い方法があると確信しています:

 
if($cc -eq $null){ 
    Send-MailMessage -From $from ... ## call without -Cc 
} else { 
    Send-MailMessage -From $from ... -Cc $cc...  ## call WITH -Cc 
} 

私はを分岐し、ラインを書く避けたいです二度。

さらに「2倍」より悪い場合は、各オプションパラメータのすべての組み合わせを記述します。

(もちろん、コマンドレットは、電子メールを送信しているという事実が、ここでは重要ではありません。問題は、オプションのパラメータを回避するために必要なすべてのコマンドレットのために立つ)

これを行うためのベストプラクティスの方法は何ですか?

答えて

3

使用splattingありがとう:

$Params = @{} 
if($ShouldUseCc) { 
    $Params.Add('Cc', $CcValue) 
} 
if($ShouldUseBcc) { 
    $Params.Add('Bcc', $BccValue) 
} 
Send-MailMessage -From $from ... @Params 
関連する問題