匹配比较器意外结果

时间:2018-04-19 12:14:20

标签: powershell

我使用-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'你们。

0 个答案:

没有答案