1

渡す変数がある場合にのみ、PowerShell でコマンドレット呼び出しにパラメーターを追加することは可能ですか?

例えば

Send-MailMessage -To $recipients (if($copy -ne "") -cc $copy) ....
4

1 に答える 1

2

上で書いた方法ではありませんが、 parameters をスプラットして、条件付きのハッシュを作成できるため、 への呼び出しは 1 回だけsend-mailmessageです。数か月前に書いたスクリプトの例:

#Set up default/standard/common parameters
$MailParams = @{
"Subject"="This is my subject";
"BodyAsHtml" = $true;
"From" = $MailFrom;
"To" = $MailTo;
"SmtpServer" = $SMTPServer;
};

#On the last day of the month, attach a logfile.
if ((Get-Date).AddDays(1).Day -eq 1) {
$attachment = $LogFilePath;
$ReportContent = "Full log for the the preceding month is attached.<br><br>" + $ReportContent;
$MailParams.Add("Attachments",$attachment);
}

send-mailmessage @MailParms

したがって、あなたの場合は次のようになります。

$MailParams = @{
"Subject"="This is my subject";
"From" = $MailFrom;
"To" = $recipients;
"SmtpServer" = $SMTPServer;
};

if (($copy -ne [string]::empty) -and ($copy -ne $null)) {
$MailParms.Add("CC",$copy);
}

send-mailmessage @MailParms
于 2013-06-20T12:40:55.110 に答える