Blu*_*luz 3 string powershell search psobject
我不知道如何用通常的嫌疑人这样做,即Where-Object或Select-Object.
假设我想在PSCustomObject中找到字符串"needle" $Object,并且该对象可以有几个Note属性,例如$Object.Haystack1,$Object.Haystack2等等.
在我的情况下,注释属性的数量是已知的并且是固定的,但是当你不知道对象有多少属性时,我想知道如何处理更难的情况.
我和Select/ Where-Object和操作员一起探索,-in但没有设法制作一个简单,优雅的衬里来完成这项工作.
$obj = [pscustomobject]@{'Haystack1'='test';'Haystack2'='needle'}
$noteProperties = $obj|get-member -MemberType NoteProperty | select -ExpandProperty name
$noteProperties | Where {$obj."$_" -match 'needle'}
Run Code Online (Sandbox Code Playgroud)
你可以用它来表达它
$obj|gm -M NoteProperty|?{$obj."$($_.Name)"-match'needle'}
Run Code Online (Sandbox Code Playgroud)