2016-03-24 25 views
0

Outlookのサブフォルダにある添付ファイルを印刷する方法を理解しようとしています。私は限り、フォルダにそれらを抽出するスクリプトを持っているが、私はそのフォルダからの電源をシェルする必要がありますか、またはそれらが最初にそのフォルダに送信されるように印刷する方法があるのだろうか?PowershellとMAPIを使用してoutlookサブフォルダ内の添付ファイルを自動的に印刷する

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

これは添付ファイルを抽出しますが、印刷しません。

このないフォルダ印刷:

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

私はこれらの2つのスクリプトを持っているが、私は、スクリプト1から各添付ファイルを印刷したり、スクリプト1を組み合わせ、2、誰でも助けることができるだろういずれかの方法がわからないのですか?あなただけの印刷を行うことの後に声明を持つことができる必要がありますので、事前に

おかげ

+0

saveasfileは何も出力しないので、後続のパイプラインには動作するファイルオブジェクトがありません。 –

答えて

0

はSaveAsFileは、ファイル名を返しません。

$_.saveasfile((Join-Path $filepath $a)) 
Start-Process -FilePath (Join-Path $filepath $a) –Verb Print } 
関連する問題