我不确定如何使用常见的嫌疑人,Where-Object
或Select-Object
。
假设我想在PSCustomObject $Object
中找到字符串“needle”,并且该对象可以有多个Note属性,例如$Object.Haystack1
,$Object.Haystack2
等等。
在我的情况下,注释属性的数量是已知且已修复的,但我想知道如果不知道您的对象有多少属性,该怎么做更难的情况。
我使用Select
/ Where-Object
和操作员-in
进行了调查,但是没有设法做出一个简单,优雅的衬垫来完成这项工作。
答案 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"]);