次のPowerShellコードを実行して受信トレイ内の一致を検索し、一致するものが1つしかないインスタンスでフィルタが動作しない理由が不明です。一致を見つけてフィルタリングするコードは次のとおりです。 1回の一致でPowerShellのカウントが機能しない
Add-type -assembly "Microsoft.Office.Interop.Outlook" | out-null
$olFolders = "Microsoft.Office.Interop.Outlook.olDefaultFolders" -as [type]
$outlook = new-object -comobject outlook.application
$namespace = $outlook.GetNameSpace("MAPI")
$inbox = $namespace.getDefaultFolder($olFolders::olFolderInBox)
$filter = (%{$inbox.items | Where {$_.SenderName -match ‘JoeUser’ -and
$_.UnRead -eq $true}})
...と私は
$ filter.countを実行することにより、マッチの数を求めるとき、私はAS LONG複数の一致があるので、正しい答えを得ます。したがって、受信トレイに一致するメッセージが1つしかないシナリオでは、
$ filter.countは何も返さず、後続のコードがメッセージ処理に失敗します。一致するものが見つかったことがわかりますメッセージは
$ filter
から見ることができるので、このカウントが$ filterからの1つの一致では機能しない理由を理解できますか?
おかげで正しい答えを得ることができます示唆します!その小さなアンパサンドは、あなたが述べたように働いた!明らかに、私の$フィルタを文字列から配列に変更したところで、$ filter.countの値が1に正しくなっています。 冗長な質問に対する謝罪。 – mandg