![](/img/trans.png)
[英]Adding SP group to a newly created Person or Group Column via Powershell
[英]Adding newly created objects from one list to another in PowerShell
我有一个脚本,当文件超出最大设置大小时,该脚本会发送电子邮件。
我所有的文件都来自一个XML文件,该文件总结了路径和最大大小。
我检查每个大小(并查看是否超过最大大小)的foreach
看起来像:
foreach ($item in $list)
{
if($item.Size -gt $item.TriggerSize -And (Test-Path $item.Path))
{
$body =
"The file " + $item.Name + " is reaching his max size!
<br /><br /> Current size: "+$item.Size.ToString(".00") + " " + $byteSize.Substring(1) +
"<br /> Maximum size: " + $item.MaxSize + " " + $byteSize.Substring(1)
Send-MailMessage -port 587 -From $from -BodyAsHtml -Encoding $enc -To $to -Subject $subject -Body $body -UseSsl -Credential $credentials
}
}
该代码运行正常,我收到一封电子邮件,看起来像:
文件editix2017.exe达到了他的最大大小!
当前大小:84.93 Mb
最大大小:100 Mb
但是,我遇到的问题是,当我使用多个文件时,它会为每个超出其最大限制的文件发送一封电子邮件。
这意味着,如果我有2个超出最大大小的文件,它将发送2封单独的电子邮件。
如何将每个超出的文件封装到列表中,然后仅发送一封电子邮件?
每次使用$body +=
将文本添加到$body
字符串中,然后将Send-MailMessage
移到循环外,以便仅在评估每个文件后才发送电子邮件:
foreach ($item in $list)
{
if($item.Size -gt $item.TriggerSize -And (Test-Path $item.Path))
{
$body += "The file $($item.Name) is reaching his max size!<br />
Current size: $($item.Size.ToString(".00")) $($byteSize.Substring(1))<br />
Maximum size: $($item.MaxSize) $($byteSize.Substring(1))<br /><br />"
}
}
Send-MailMessage -port 587 -From $from -BodyAsHtml -Encoding $enc -To $to -Subject $subject -Body $body -UseSsl -Credential $credentials
编辑:我更新了$body
构造为使用子表达式$()
因为这些子表达式仅返回对象的属性,从而使字符串构造更加简单。
这可能会做到(未测试)。 它将$ body定义为一个空字符串,然后我们在循环中增加有关文件的消息,然后我将send-mailmessage移到了循环之外,以便我们在末尾进行操作,但前提是$ body具有内容:
$body = ""
foreach ($item in $list)
{
if($item.Size -gt $item.TriggerSize -And (Test-Path $item.Path))
{
$body +=
"The file " + $item.Name + " is reaching his max size!
<br /><br /> Current size: "+$item.Size.ToString(".00") + " " + $byteSize.Substring(1) +
"<br /> Maximum size: " + $item.MaxSize + " " + $byteSize.Substring(1) + "<br /><br />"
}
}
If ($body) { Send-MailMessage -port 587 -From $from -BodyAsHtml -Encoding $enc -To $to -Subject $subject -Body $body -UseSsl -Credential $credentials }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.