我有以下代码在outlook中使用PowerShell保存电子邮件附件。Powershell在过去几天内保存电子邮件附件
$o = New-Object -comobject outlook.application
$n = $o.GetNamespace("MAPI")
$Account = $n.Folders | ? { $_.Name -eq ''Mailbox};
$f = $Account.Folders | ? { $_.Name -match 'Inbox' };
$filepath = "c:\temp\"
$f.Items| Where-Object {$_.SenderName -eq "Sender"} | foreach {
$Subject = $_.Subject
$_.attachments|foreach {
Write-Host $_.filename
$a = $_.filename
If ($a.Contains("xls")) {
$_.saveasfile((Join-Path $filepath "$Subject.xls"))
}
}
}
问题是这是通过我的整个收件箱,需要一段时间。 有没有办法让它只查看最后一周左右的数据? 或者也许昨天只收到电子邮件? 我希望先查看最近的电子邮件,当它找到第一个匹配时停止查找... 它试图保存的电子邮件每天都会发送给我,并且可能会在找到第一个实例后停止。
谢谢!
'位置对象{($ _发送者姓名-eq “发件人”。) - 和($ _ ReceivedTime.ToString( “年月日”。 )-gt $ dtRestrictedDate.ToString(“yyyyMMdd”))}'?当然,你可以更早地设置所有这些,而不用在比较中使用'ToString'等方法。 – gravity