PowerShell отправлять электронную почту с динамическим содержимым папки - PullRequest
0 голосов
/ 06 марта 2019

У меня есть сценарий, который распаковывает файлы, а затем переименовывает папки в имя разархивированного 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
}

Foldernames - это частично сгенерированные и статические имена, которые изменяются с zipfile на zipfile.

1 Ответ

0 голосов
/ 06 марта 2019

Проблема в -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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...