Toh*_*huw 40 powershell powershell-3.0
我需要从对象中删除一个成员(特别是一个NoteProperty).我该如何做到这一点?
Rom*_*min 52
Select-Objectwith ExcludeProperty适用于从对象集合中删除属性.
要从单个对象中删除属性,此方法可能更有效:
# new object with properties Test and Foo
$obj = New-Object -TypeName PSObject -Property @{ Test = 1; Foo = 2 }
# remove a property from PSObject.Properties
$obj.PSObject.Properties.Remove('Foo')
Run Code Online (Sandbox Code Playgroud)
And*_*ndi 17
我认为您不能从现有对象中删除,但可以创建已过滤的对象.
$obj = New-Object -TypeName PsObject -Property @{ Test = 1}
$obj | Add-Member -MemberType NoteProperty -Name Foo -Value Bar
$new_obj = $obj | Select-Object -Property Test
Run Code Online (Sandbox Code Playgroud)
要么
$obj | Select-Object -Property * -ExcludeProperty Foo
Run Code Online (Sandbox Code Playgroud)
这将有效地实现相同的结果.
如果您有兴趣从大对象中删除一两个属性,我发现以下内容会有所帮助。将您的对象转换为 JSON,然后再转换回对象 - 所有属性都转换为 NoteProperty 类型,此时您可以删除您喜欢的内容。
$mycomplexobject = $mycomplexobject | ConvertTo-Json | ConvertFrom-Json
$mycomplexobject.PSObject.Properties.Remove('myprop')
Run Code Online (Sandbox Code Playgroud)
到 JSON 和返回的转换会创建一个 PSCustomObject。您将表达原始对象,然后您可以根据需要删除。
| 归档时间: |
|
| 查看次数: |
42000 次 |
| 最近记录: |