我有以下代碼在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