我使用-Match过滤一些带有电子邮件地址的数据但是我得到了意想不到的结果。
Get-ChildItem $AccountKey -Rec -EA SilentlyContinue| ForEach-Object {
$CurrentKey = (Get-ItemProperty -Path $_.PsPath)
If ($CurrentKey -Match "Account Name") {
If ($CurrentKey -Match [regex]::Escape('@g')) {
Write-Host "Match:" $CurrentKey."Account Name"
}
}
}
Output:
Match: Outlook Address Book
Match: xx@gx.xy
Match: xxx@gx.xy
Match: xxxx@gx.xy
Match: xxxxx@gx.xy
因此,它正确地找到了它应该的电子邮件地址,但实际上它是如何实现的?#Outlook; Outlook Address Book"与" @ g"匹配?
只使用$ CurrentKey -Match" @ g"产生相同的结果。
谢谢!
解决:
我在第二个If语句中意外使用了$ CurrentKey,而不是使用$ CurrentKey。" Account Name"这是正确的 - 哎呀!抱歉,buggin'你们。