渡す変数がある場合にのみ、PowerShell でコマンドレット呼び出しにパラメーターを追加することは可能ですか?
例えば
Send-MailMessage -To $recipients (if($copy -ne "") -cc $copy) ....
渡す変数がある場合にのみ、PowerShell でコマンドレット呼び出しにパラメーターを追加することは可能ですか?
例えば
Send-MailMessage -To $recipients (if($copy -ne "") -cc $copy) ....
上で書いた方法ではありませんが、 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