【发布时间】:2019-05-22 07:05:58
【问题描述】:
有史以来第一个 Powershell 脚本,因此感谢您提供任何建议或建议。我正在将 .csv 解析为更小的 .csv,以便将有关服务器的信息发送给收件人,但我在 foreach 中遇到了问题。我如何让它发挥作用?
一个有趣的事情是,在 Send-MailMessage 中,-to 不应该接受管道对象,它仍然会抛出错误,但它仍然会发送电子邮件。但是附件永远不会发送。
#had to set this as a variable because @ was throwing splatting errors
$Mail = "@Email.com"
#Import csv and split information, exports UID.csv
Import-csv C:\path\info.csv | Group-Object UID |
ForEach-Object {
$_.Group | Export-csv "C:\path\$($_.Name).csv" -NoTypeInformation
}
#Import file again to get unique list of UID and send mail with
#respective UID.csv
Import-csv C:\path\info.csv | Group-Object UID |
ForEach-Object {
$_.UID | Send-MailMessage -From "<Me@email.com>" -To "<$($_.Name)$Mail>" `
-Attachments "C:\path\$($_.Name).csv" `
-Subject "Testing" -Body "Please Ignore This" -Priority High `
-SmtpServer smtp.server.com
}
【问题讨论】:
-
将复杂的 $Vars 分配给中间 $Vars 并在您的
Send-MailMessage调用中使用这些中间 $Vars。 ///// 同样,反引号在一行的开头不起作用......仅作为一行末尾的最后一件事。 [grin] 他们逃脱了“换行符”... -
我已经清理了您问题中的语法错误和格式,因为我认为它们只是发布的产物,而不是您的实际问题。
标签: powershell csv foreach pipeline email-attachments