You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell邮件脚本优化:过滤缺失日志,仅发送可用日志附件

PowerShell脚本优化:自动过滤缺失的日志附件

你可以通过添加文件存在性校验逻辑来实现需求,过滤掉数组中不存在的文件,只将实际存在的日志作为附件发送。修改后的脚本如下:

$User = "Email_DL";
$Recipients = @("user1.xyz.com","user2.xyz.com");
$Password = "";

# 定义所有可能的日志文件路径
$allAttachmentPaths = @(
    "\\Server1\Files\FilesMissing.log"
    "\\Server1\Files\FilesCopied.log"
    "\\Server1\Files\Output.log"
    "\\Server1\Files\CAS\CAS_FLDFilesCopied.log"
    "\\Server1\Files\CAS\CAS_FLDFilesMissing.log"
    "\\Server1\Files\CAS\CAS_FLD_Output.log"
);

# 过滤出实际存在的文件
$validAttachments = $allAttachmentPaths | Where-Object { Test-Path $_ -PathType Leaf }

# 发送邮件,仅携带存在的日志文件
Send-MailMessage -From $User -To $Recipients -SMTPServer "XXXXXXXX" `
    -Body "日志文件如下" -Subject "Replication test" `
    -Attachments $validAttachments

关键逻辑说明

  • Test-Path $_ -PathType Leaf:校验当前路径是否为存在的文件(排除文件夹),确保只筛选出真实存在的日志文件。
  • 自动过滤后,$validAttachments数组只会保留存在的文件,包括你提到的必选输出日志(Output.log和CAS_FLD_Output.log),因为这两个文件在任何场景下都会生成。
  • 修正了原脚本中Send-MailMessage末尾多余的点号,避免语法错误。

内容的提问来源于stack exchange,提问作者Puneet Tiwari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 21:33:23