Get-ChildItem -Path C:\inetpub\mailroot\Badmail -Include *.bad -Recurse | Select-String -Pattern "To: *@*.com"
我的查询结果我只需要电子邮件地址本身。目前我的输出如下
C:\inetpub\mailroot\Badmail\003b91651170707201800000012.BAD:2:To: user@domain.com C:\inetpub\mailroot\Badmail\003b91651170707201800000012.BAD:46:To: user@domain.com C:\inetpub\mailroot\Badmail\003c11119100507201800000007.BAD:2:To: user@domain.com C:\inetpub\mailroot\Badmail\003c11119100507201800000007.BAD:47:To: user@domain.com C:\inetpub\mailroot\Badmail\003c11119100507201800000007.BAD:48:Reply-To: user@domain.com C:\inetpub\mailroot\Badmail\003c60245022007201800000009.BAD:2:To: user@domain.com C:\inetpub\mailroot\Badmail\003c60245022007201800000009.BAD:47:To: user@domain.com C:\inetpub\mailroot\Badmail\003c60245022007201800000009.BAD:48:Reply-To: user@domain.com C:\inetpub\mailroot\Badmail\003e61810232107201800000010.BAD:2:To: user@domain.com C:\inetpub\mailroot\Badmail\003e61810232107201800000010.BAD:46:To: user@domain.com
你很接近,但你也在捕捉 Reply-To (如果这是有意的,不知道)。您可以使用捕获组来确定电子邮件地址:
Reply-To
Get-ChildItem -Path C:\inetpub\mailroot\Badmail -Filter *.bad -Recurse | Select-String -Pattern 'To:\s(.+@.+\.com)' | ForEach-Object { $PSItem.Matches.Groups[1].Value }