根据对象的值搜索对象中的未知属性

时间:2016-06-28 21:09:00

标签: string powershell search psobject

我不确定如何使用常见的嫌疑人,Where-ObjectSelect-Object

假设我想在PSCustomObject $Object中找到字符串“needle”,并且该对象可以有多个Note属性,例如$Object.Haystack1$Object.Haystack2等等。

在我的情况下,注释属性的数量是已知且已修复的,但我想知道如果不知道您的对象有多少属性,该怎么做更难的情况。

我使用Select / Where-Object和操作员-in进行了调查,但是没有设法做出一个简单,优雅的衬垫来完成这项工作。

3 个答案:

答案 0 :(得分:7)

$obj = [pscustomobject]@{'Haystack1'='test';'Haystack2'='needle'}

$noteProperties = $obj|get-member -MemberType NoteProperty | select -ExpandProperty name
$noteProperties | Where {$obj."$_" -match 'needle'}

你可以用

进行单行
$obj|gm -M NoteProperty|?{$obj."$($_.Name)"-match'needle'}

答案 1 :(得分:4)

一种可能性:

$obj = [pscustomobject]@{'Haystack1'='test';'Haystack2'='needle'}
@($obj | Format-List *| Out-String).split("`n") -like '*needle*'

Haystack2 : needle

答案 2 :(得分:0)

applyClass (document.querySelector ("span"), "red", ["red", "green"]);