powershell - PowerShell cmdlet参数列表中的if语句

标签 powershell if-statement parameters cmdlet

Send-Message `
    -From $emailAuthUser `
    -To $($emailTo -split ',') `
    if($emailCC -ne "NA") { -CC $($emailCC -split ',') } `
    -Subject $emailSubject `
    -Body $emailBody `
    -Attachments $attachments `
    -ReplyTo $($emailReplyTo -split ',') `
    -SmtpServer $emailSmtpServer `
    -Port $emailSmtpPort `
    -Credential $creds `
    -UseSsl

错误:找不到接受参数'if'的位置参数。

是否有一种简单方式,可以选择在“内置” cmdlet中包含参数,就像我在上面试图完成的那样?如果是这样,怎么办?

最佳答案

飞溅是执行复杂参数传递的首选方法。您可以将参数存储在哈希表中,然后使用IF块将其添加到哈希表中。然后将哈希值撒入您的命令中。

$Params = @{
    From = $emailAuthUser;
    To = $($emailTo -split ',');
    Subject = $emailSubject;
    Body = $emailBody;
    Attachments = $attachments;
    ReplyTo = $($emailReplyTo -split ',');
    SmtpServer = $emailSmtpServer;
    Port = $emailSmtpPort;
    Credential = $creds;
    UseSsl = $True;
}

if($emailCC -ne "NA") { $Params['CC'] = ($emailCC -split ',') }

Send-Message @Params

关于powershell - PowerShell cmdlet参数列表中的if语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58997850/

相关文章:

powershell - 获取文本文档中每一行的字符数

xml - 如何使用 PowerShell 提取 Epub 元数据 (XML)?

powershell - 获取帮助 about_Automatic_Variables 不起作用

javascript - 无法在 if 语句 Javascript 中为变量分配数字

c++ - 函数参数的...是什么?

powershell - 仅在每行的某些列位置查找和替换字符

r - 根据条件或 ID 匹配和返回值

c++ - 替代 IF 语句和 switch case

java - 创建抽象方法而不固定其参数类型

delphi - adoquery1:未找到参数“名字”