我正在尝试编写一个小的 powershell 脚本来做一些事情
1) 在我的 Outlook 中解析收件箱项目 2) 搜索 RegEx 字符串 3) 将与 RegEx 字符串匹配的行转储到 CSV
我无法让#3 工作。它肯定会运行大约 10 分钟,但生成的 csv 是空的。
这是我希望它寻找的片段:
账户名称:Jbond
我试着在各个部分打一个“Write-Host $variable”来看看发生了什么,但我得到的只是“System.____comobject”。我在网上找不到将其转换为纯文本的解决方案。
Add-Type -Assembly "Microsoft.Office.Interop.Outlook"
$Outlook = New-Object -ComObject Outlook.Application
$namespace = $Outlook.GetNameSpace("MAPI")
$inbox = $namespace.GetDefaultFolder([Microsoft.Office.Interop.Outlook.OlDefaultFolders]::olFolderInbox)
$RE = [RegEx]'(?sm)Account Name\s*:\s*(?<AccName>.*?)$.*'
$Data = ForEach ($item in $inbox.items){
$resultText = $item.item.Value
Write-Host $resultText
if ($item.from -like "email@email.org"){
if ($item.body -match $RE){
[PSCustomObject]@{
AccName = $Matches.AccName
}
}
}
}
$Data
$Data | Export-CSv '.\data.csv' -NoTypeInformation