我对PowerShell非常陌生,我在这个任务上遇到了麻烦。
我需要能够从一个CSV文件中的一行提取具有相同域的多封电子邮件。
这是我原来的,但它停止后,它找到一个匹配。
$myvar = @()
foreach($row in $CSV)
{
If ($row.ProxyAddresses -match "\w+([-+.']\w+)*@markelintl.ca")
{
$myvar += $Matches[0]
}
}
我确信我需要将Select-String
与-allMatches
一起使用,我发现了这个例子:
Select-String "@([a-z1-9\.-]+)" -AllMatches |
Select-Object $row. Matches |
Select-Object Groups |
ForEach{$_.Groups[1]} |
Select-Object -ExpandProperty Value
但我有麻烦匹配我的变量到这个(由于我的新手能力)。
在这种情况下,Select-String是我的最佳选择吗?
2条答案
按热度按时间xoefb8l81#
如果更改了向数组中添加地址的部分,代码应该可以正常工作。
试试这样的方法:
为了给予您一个更具体的答案,有一个包含测试数据的CSV样本会很有帮助。
希望有帮助!
fivyi3re2#
在不知道ProxyAddress如何存储在CSV中的情况下,您可以执行以下操作: