如何使用 PowerShell Where-Object 过滤 属性 长度?

How do I use PowerShell's Where-Object to filter on property length?

假设您有一个 PowerShell 命令 Get-MyObj。这个 returns 个对象有一个 属性 名为 V 的对象本身就是一个对象数组。您将如何使用 Where-Object 来 select 仅返回其 V 属性 长度大于 0 的对象?

我尝试了以下方法,但似乎不起作用:

Where-Object($_.V.length -gt 0)

您需要使用花括号 {},而不是圆括号 (),用于过滤子句:

Get-MyObj | Where-Object { $_.V.Length -gt 0 }

另一种解决方案(我发现管道的解决方案更优雅):

(Get-MyObj).Where({$_.V.Length -gt 0})