【问题标题】:How to handle optional parameters in powershell cmdlet如何处理 powershell cmdlet 中的可选参数
【发布时间】:2016-07-03 14:30:57
【问题描述】:

问题:

我正在编写一个将接受参数并发送电子邮件的 cmdlet。 “抄送”是参数之一;并且是非强制性的。 今天的代码显示了两行调用 Send-MailMessage (如以下段落),但我确信有更好的方法来编写它:

如果($cc -eq $null){ Send-MailMessage -From $from ... ## call without -Cc } 别的 { Send-MailMessage -From $from ... -Cc $cc... ## call WITH -Cc }

我想避免 分支 并写两次。

甚至比“两次”还要糟糕,为每个可选参数编​​写所有组合。

(当然,cmdlet 发送电子邮件的事实在这里并不重要。问题将代表任何需要避免可选参数的 cmdlet)

执行此操作的最佳实践方法是什么?

谢谢你

【问题讨论】:

    标签: powershell parameters dynamic-programming optional-parameters


    【解决方案1】:

    使用splatting:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-20
      • 1970-01-01
      • 2017-03-07
      • 2023-04-10
      • 2013-09-16
      • 2013-06-17
      相关资源
      最近更新 更多