Powershell发送带有动态文件夹内容的电子邮件

时间:2019-03-06 09:27:11

标签: powershell

我有一个脚本,该脚本解压缩文件,然后将文件夹重命名为内部解压缩的pdf的名称。
我要补充一点,该脚本以电子邮件的形式发送每个未压缩文件夹的内容

$SourceDir = 'C:\Install\NB\Teststart'
$ExtractDir = 'C:\Install\NB\Testfinal'

# Extract each zip to a folder with the same name as the zip file (BaseName)
Get-ChildItem (Join-Path $SourceDir *.zip) | foreach {
    Expand-Archive $_.FullName -DestinationPath (Join-Path $ExtractDir $_.BaseName)
}

# Rename the PDF's parent folder to the same as the PDF
Get-ChildItem (Join-Path $ExtractDir *.pdf) -Recurse | foreach {
    Rename-Item -Path $_.Directory.FullName -NewName $_.BaseName
}

文件夹名称是部分生成的静态名称,并且从zipfile更改为zipfile。

1 个答案:

答案 0 :(得分:0)

问题是-Attachments $ExtractDir-您正在尝试在电子邮件中附加字符串'C:\Install\NB\Testfinal'

您需要获取文件夹内的文件并将其附加。

同样可以使用Get-ChildItem,到目前为止,使用文件时您可以看到一个主题;)

foreach ($folder in (Get-ChildItem $ExtractDir -Directory)) { # loop through each folder
    $files = Get-ChildItem (Join-Path $ExtractDir $folder) -File  | Select-Object -ExpandProperty FullName # get files in that folder and assign to variable
    Send-MailMessage [your other params] -Attachments $files # use variable as your attachments
}