我正在尝试使用Select-String
从排序的哈希表中提取某些值。
这有效,但为什么输出中还有额外的空白行?
cls
$fruits = @{"1" = "apple"; "2" = "lemon"; "3" = "orange"; "4" = "apricot"}
foreach ($fruit in $fruits.GetEnumerator() | Sort-Object Value) {
$fruit.Value | Select-String -pattern "ap" -SimpleMatch
}
答案 0 :(得分:0)
我认为你得到的是空值,因为对于每个你正在做一个Select-String的项目,有时会返回一个值,但在其他时候没有任何值 - 那些不是空行。
尝试使用Where-Object:
的类似内容$fruits.Values | Sort-Object | Where-Object { $_ -match "ap" }
答案 1 :(得分:0)
我正在使用PowerShell 3.0。
我做了两行代码
PS C:\> $fruits = @{"1" = "apple"; "2" = "lemon"; "3" = "orange"; "4" = "apricot"}
PS C:\> $fruits.Values -like 'ap*'
apricot
apple
PS C:\>
进一步调查
似乎是当没有匹配时它返回NULL。
foreach($key in $fruits.Keys){(Select-String -Pattern 'ap' -SimpleMatch -InputObject $fruits[$key]) -eq $NULL}
由于它没有重定向到变量,所以它只向主机打印NULL。这是我的假设(假设)。
奇怪......好问题。