用于从outlook

时间:2016-06-09 07:09:25

标签: excel email outlook powershell-v2.0 extract

我想从Outlook中的电子邮件中提取.xls文件,将其重命名并将其保存到文件夹中。我找到了一些脚本,但是根据我的需要完全实现了它们。

发布更新。

我找到this one,但它没有重命名,是否可以修改此代码以满足我的要求?

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


#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
$Account = $n.Folders | ? { $_.Name -eq 'name@domain.com' };
$Inbox = $Account.Folders | ? { $_.Name -match 'Inbox' };
$f = $Inbox.Folders | ? { $_.Name -match 'subfolder' };

#string to search for in attachment name
$file = '.xlsx'


#now loop through them and grab the attachments
$f.Items | foreach {
    $_.attachments | foreach {
    Write-Host $_.filename
    $a = $_.filename
    $b = 'Rename ' + $a
    If ($a.Contains($file)) {

    $_.saveasfile((Join-Path $filepath $b))
      }
  }

}

发布更新。

  

此脚本适用于我自己的邮箱。我虽然有一个公用文件夹   添加到我的Outlook,是否可以访问其中的文件夹   公共文件夹通过调整此脚本?

1 个答案:

答案 0 :(得分:0)

不确定您希望如何重命名,但这里有一个counter++示例:
foreach语句之前添加一个新变量:

$counter=0
然后在foreach做下一步增加1

 $counter++ 

最后重命名提取的文件,如下

$_.saveasfile((Join-Path $filepath "file$counter.xlsx"))

更好的是举例说明2个真实的文件名,并告诉你如何期待输出