我需要在网络驱动器上的25000个单独的.msg文件中搜索关键字。我已经为Word,Excel,PDF创建了脚本,但是卡在Outlook邮件文件(.msg)中。我需要脚本来读取.msg文件,找到关键字,然后如果该关键字位于.msg文件中,则将该文件复制到另一个文件夹。我已经用Google搜索,但是没有找到我需要的帮助。
我尝试添加Get-Content
,Select-String -Pattern
,但遇到无法识别的错误。
这与我所获得的差不多。
Get-ChildItem "y:\test" -Filter *.msg |
ForEach-Object {
$outlook = New-Object -ComObject Outlook.Application
$msg = $outlook.CreateItemFromTemplate($_.FullName)
$msg | Select body | ft -AutoSize
}
这找到我的测试.msg文件。它显示身体,我可以看到关键字。现在我需要剩下的。
答案 0 :(得分:2)
您快到了。 $msg
只是一个长字符串,因此您可以使用简单的-like
匹配项来查看它是否包含您的关键字:
Get-ChildItem "y:\test" -Filter *.msg |
ForEach-Object{
$outlook = New-Object -comobject outlook.application
$msg = $outlook.CreateItemFromTemplate($_.FullName)
$msg | Select body|ft -AutoSize
if($($msg | Select -ExpandProperty body) -like "*keyword*"){
# logic to copy file
}
}