首页 > 解决方案 > Powershell附加了文件夹中的所有文件

问题描述

我需要通过电子邮件发送并附加文件夹中的所有文件,但不包括任何子文件夹。我收到错误找不到“添加”和参数计数的重载:“1”。在行:11 字符:1

下面是powershell代码。

$dir = "C:\Users\myid\Documents\comparsion\src\main\resources\excelfiles\Compare_Result_Files"
$getallfiles = Get-ChildItem "$dir\*.xlsx"
$emailSmtpServer = "mailhub-au.com"
$emailMessage = New-Object System.Net.Mail.MailMessage
$emailMessage.From = "donotreply@company.com"
$emailMessage.To.Add( "myid@company.com" )
$emailMessage.Subject = "Selenium Report"
$emailMessage.IsBodyHtml = $true
$emailMessage.Body = "Test Summary Attached"
$emailMessage.Body = "$getallfiles"
$emailMessage.Attachments.Add($getallfiles)
$SMTPClient = New-Object System.Net.Mail.SmtpClient( $emailSmtpServer ,$emailSmtpServerPort )
$SMTPClient.Send($emailMessage)` 

标签: powershell

解决方案


您需要遍历文件并一次添加一个。

Attachments.Add()方法还需要完整的文件名,而不是 FileInfo 对象。查看文档

foreach ($file in $getallfiles) {
    [void]$emailMessage.Attachments.Add($file.FulllName)
}

我还建议添加-File开关以Get-ChildItem确保您只收集文件,而不是文件夹。


推荐阅读