powershell使用动态foldercontent发送电子邮件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了powershell使用动态foldercontent发送电子邮件相关的知识,希望对你有一定的参考价值。

我有一个脚本,解压缩文件,然后将文件夹重命名为解压缩的pdf里面的名称。 我想补充一点,脚本将每个解压缩文件夹的内容作为电子邮件发送

$SourceDir = 'C:InstallNBTeststart'
$ExtractDir = 'C:InstallNBTestfinal'

# 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
}

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

答案

问题是-Attachments $ExtractDir - 您正在尝试将字符串'C:InstallNBTestfinal'附加到您的电子邮件中。

您需要获取文件夹中的文件并附加它们。

再次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
}

以上是关于powershell使用动态foldercontent发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

如何编写 powershell 脚本来知道磁盘是基本的还是动态的?

在 PowerShell 中调用动态变量

powershell 从PowerShell动态加载.Net程序集

这在 Powershell 中可行吗?

动态 SQL Where 条件,在 Powershell 脚本中

Powershell分享1--动态组,静态组