$Outlook = New-Object -ComObject Outlook.Application
$OutlookInbox = $Outlook.session.GetDefaultFolder(6)
$TotalEmailCount = $OutlookInbox.ShowItemCount
While ($TotalEmailCount -eq 0)
{
Start-Sleep -s 10
Write-Host "Waiting for the email"
}
Write-Host $TotalEmailCount
最初,收件箱文件夹为空。现在我要等到Outlook中收到一封电子邮件,然后打印一些" text"一旦它到来。但是当我尝试运行此代码时,我总是将输出作为" 1"。我正在使用powershell。请帮忙!
答案 0 :(得分:1)
ShowItemCount
是要检查的错误属性。这个returns an enumerator that defines whether outlook shows a count of unread emails on a folder,目前看起来设置为“1”。这是一个设置,而不是电子邮件的数量。
我现在没有任何地方可以测试这个,但这就是我认为你需要的东西:
$Outlook = New-Object -ComObject Outlook.Application
$OutlookInbox = $Outlook.session.GetDefaultFolder(6)
$TotalEmailCount = $OutlookInbox.Items.Count
While ($TotalEmailCount -eq 0)
{
Start-Sleep -s 10
Write-Host "Waiting for the email"
$TotalEmailCount = $OutlookInbox.Items.Count
}
Write-Host $TotalEmailCount
注意(如上所述)您需要重新检查循环中的项目计数,否则您的脚本将永远运行。