1

Powershell v2.0でSend-MailMessage関数を使用しています。添付ファイルが常に送信されるとは限らないため、添付ファイルに変数を使用しています。変数に添付ファイル(ファイルの場所)がない場合はエラーが発生し、そうでない場合は機能します。Send-MailMessage関数を設定して、添付ファイルを出力し、それ以外の場合は失敗しないようにするにはどうすればよいですか。

Send-MailMessage -BodyAsHtml –From Monitoring@CorporateActions -Priority $Priority –To "steven.meadows@dionglobal.eu" -Attachments $IDCSwiftLogFileAttachment,$SecurityLogFileAttachment, $ClientTypeLogFileAttachment –Subject “Corporate Actions Overnight Processing” –Body "<b><u> Download Status: </u></b> <br><br> $SWIFTDownloadErrorMessage $SecurityDownloadErrorMessage $ClientDownloadErrorMessage $HoldingDownloadErrorMessage $CLISLOOKDownloadErrorMessage $SWIFTDownloadSuccessMessage $SecurityDownloadSuccessMessage $ClientDownloadSuccessMessage $HoldingDownloadSuccessMessage $CLISLOOKDownloadSuccessMessage <b><u> X-Gen Processing Status: </u></b> <br><br> $SWIFTXGenNoInputMessage $SecurityXGenNoInputMessage $ClientXGenNoInputMessage $HoldingXGenNoInputMessage $CLISLOOKXGenNoInputMessage $IDCSwiftXGenSuccessMessage $SecurityXGenSuccessMessage $ClientXgenSuccessMessage $HoldingXgenSuccessMessage $ClientTypeXGenSuccessMessage $IDCSwiftXgenErrorMessage $SecurityXgenErrorMessage $ClientXgenErrorMessage $HoldingXgenErrorMessage $ClientTypeXGenErrorMessage”  –SmtpServer smtp.investmaster.com
4

2 に答える 2

3

「スプラット」パラメーターを使用できます。{パラメーター名、パラメーター値}のハッシュを使用して、Attachments不要なときにパラメーターを渡さないようにします。

$attachments = @()
if ($IDCSwiftLogFileAttachment) {
  $attachments += $IDCSwiftLogFileAttachment
}
# Repeat for each potential parameter

$params = @{}
if ($attachments.Length -gt 0) {
  $params['Attachments'] = $attachments
}

Send-MailMessage @params -BodyAsHtml –From Monitoring@CorporateActions -Priority $Priority # Other parameters

(ハッシュテーブルを使用してパラメーターを渡すこの機能は、PowerShell V2で追加されました。)

于 2013-01-28T11:30:25.907 に答える
0

関数を作成したと仮定すると、attachmateの変数を配置するのが最も簡単な方法です。最後のposhは、関数呼び出しの最後の変数である場合、省略を受け入れます。

それは派手でも正しくないかもしれませんが、私は数年前から問題なく書いた電子メール機能でその方法を使用しています

于 2013-09-04T03:47:14.637 に答える