2016-03-24 1 views
0

Ich versuche, eine Möglichkeit zum Drucken von Anlagen zu finden, die in einem Unterordner von Outlook landen. Ich habe so weit wie ein Skript, das sie in einen Ordner extrahiert, aber ich frage mich, ob ich Shell-Print aus diesem Ordner oder wenn es nur eine Möglichkeit, sie zu drucken, wie sie zuerst in diesen Ordner gesendet werden soll.Automatisches Drucken von Anlagen im Outlook-Unterordner mit Powershell und MAPI

#file path 
$filepath = “c:\tests\” 


#set outlook to open 
$o = New-Object -comobject outlook.application 
$n = $o.GetNamespace(“MAPI”) 


#you'll get a popup in outlook at this point where you pick the folder you want to scan 
#$f = $n.pickfolder() 
$Account = $n.Folders | ? { $_.Name -eq '[email protected]' }; 
$Inbox = $Account.Folders | ? { $_.Name -match 'Inbox' }; 
$f = $Inbox.Folders | ? { $_.Name -match 'colour' }; 

#now loop through them and grab the attachments 
$f.Items | foreach { 
    $_.attachments | foreach { 
    Write-Host $_.filename 
    $a = $_.filename 
    $_.saveasfile((Join-Path $filepath $a)) | Foreach-Object { Start-Process -FilePath $_.FullName –Verb Print } 
    } 
} 

Dies extrahiert die Anhänge, druckt aber nicht.

Dies macht Druck, den Ordner:

Dir c:\tests\*.* | Foreach-Object { Start-Process -FilePath $_.FullName –Verb Print } 

Ich habe diese beiden Skripte, aber bin nicht sicher, wie ich entweder jede Anlage von Skript 1 oder Skript kombinieren drucken: 1 und 2, kann jemand helfen?

Vielen Dank im Voraus

+0

Es sieht nicht so aus, als würde saveasfile irgendetwas ausgeben, so dass die nachfolgende Pipeline keine Dateiobjekte hätte, mit denen sie arbeiten könnte. –

Antwort

0

SaveAsFile nicht den Dateinamen zurückgeben, so sollten Sie in der Lage sein, nur nach, dass eine Aussage darüber haben, die den Druck der Fall ist.

$_.saveasfile((Join-Path $filepath $a)) 
Start-Process -FilePath (Join-Path $filepath $a) –Verb Print }