稍微優先。Powershell在Outlook中的子文件夾中保存附件
在我的收件箱我有叫子文件夾的一個 這裏面是從別人一封電子郵件,呼籲One.pdf 在我的收件箱的附件我有一個叫兩個子文件夾裏面 這是從別人一封電子郵件,呼籲附件Two.pdf 在我的收件箱中,我有一個名爲Own的子文件夾,我有一個名爲Three的子文件夾。 這裏面是從別人一封電子郵件,呼籲Three.pdf 在我的收件箱我上午電子郵件與所謂Four.pdf
Inbox
-----One
--------Three
-----Two
仍與我的附件附件? :)
我有要求做以下事情。
我需要通過收件箱解析並找到.PDF附件並將其保存到驅動器上的其他位置。 然後,我需要解析收件箱的子文件夾。如果我找到一個.pdf,我需要做兩件事。
我需要檢查文件夾是否存在,如果不創建它。 我需要將該子文件夾中的.PDF保存到我剛剛創建的文件夾中。
目前我可以創建子文件夾。
我的問題是我無法在每個子文件夾中創建正確的文件。事實上,現在只能創建four.pdf,我可以在每個子文件夾中創建。
目前我正在使用此代碼。
$O=0
$Obj = New-Object -comobject outlook.application
$Name = $Obj.GetNamespace(「MAPI」)
$Mail = $Name.pickfolder()
$Path = "C:\Attached\"
$SubFolder = {
param(
$currentFolder
)
foreach ($item in $currentFolder.Folders) {
$Mail.Items | ForEach {
$O=$O+1
$_.Attachments | foreach {
$item.FolderPath
& $SubFolder $item
}
}
}
}
$Walk = & $SubFolder $Mail
ForEach ($Fo in $Walk){
$Fo.Items | ForEach {
$O=$O+1
$_.Attachments | foreach {
$Sub = $Fo
$Pos = $Sub.IndexOf("\")
$LeftPart = $Sub.Substring($Pos+28)
$FilePath = $Path + $LeftPart + "\"
If ($_.filename -like "*.PDF") {
$_
If (!(Test-Path -path $FilePath))
{
$Dest = New-Item $FilePath -type directory
}
$_.saveasfile((Join-Path $FilePath $_.filename))
}
}
}
}
這允許選擇Outlook文件夾,然後什麼也不做。如果我將$ Fo.Items更改爲$ Mail.items,它將創建文件夾和four.pdf。我知道$ Fo並不是我想要的,但我不確定從這裏取什麼樣的差異。
任何建議請。 謝謝