まず小さな背景です。Powershell Outlookのサブフォルダに添付ファイルを保存しないでください。
は私の受信トレイでは、私は、この内部ワン をサブフォルダを求めている私は、この内部二 をサブフォルダを求めている私の受信トレイに One.pdfと呼ばれる添付ファイルを持つ人からのメールは、呼び出された添付ファイルを持つ人からのメールですTwo.pdf 私の受信トレイには、この中にOwnというサブフォルダがあります.3つというサブフォルダがあります。このインサイド は、私は私と一緒にまだ
Inbox
-----One
--------Three
-----Two
Four.pdfと呼ばれるファイルが添付された午前のメールを持っている私の受信トレイでは Three.pdfと呼ばれる添付ファイルを持つ人からのメールですか? :)
私は以下のことを行う必要があります。
受信トレイを解析して.PDF添付ファイルを見つけて、ドライブの別の場所に保存する必要があります。 その後、受信トレイのサブフォルダを解析する必要があります。私が.pdfを見つけたら、私は2つのことをする必要があります。
フォルダが存在するかどうか、作成しない場合は確認する必要があります。 そのSubfolderの.PDFを今作成したフォルダに保存する必要があります。
現在、サブフォルダを作成できます。
私の問題は、各サブフォルダに正しいファイルを作成できないことです。 Infactは現在、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は私が望むものではありませんが、ここからどのような違いがありますか分かりません。
お願いします。 ありがとう