where-object无法匹配哈希表元素

时间:2015-06-23 09:57:00

标签: powershell filter where

我的代码如下,我有一个简单的哈希表,希望过滤掉value=false个结果:

PS D:\> $h=@{item1="$false";item2="$true"}
PS D:\> $h

Name                           Value
----                           -----
item1                          False
item2                          True

PS D:> $h|?{$_.Value -eq "$false"}

没有输出。为什么?我的语法是否正确?

1 个答案:

答案 0 :(得分:4)

如果要过滤这样的散列表,则需要一个枚举器:

$h.GetEnumerator() | ? { $_.Value -eq $false }

另外,如果要过滤掉值为$false的记录,则需要反转条件:

$h.GetEnumerator() | ? { $_.Value -ne $false }

否则过滤器会选择值为$false的项目。