Powershell中不存在特定对象属性时如何删除条目?

Posted

技术标签:

【中文标题】Powershell中不存在特定对象属性时如何删除条目?【英文标题】:How to delete entries when a specific object property does not exists in Powershell? 【发布时间】:2021-12-22 01:45:17 【问题描述】:

例如,在下面的 PSCustomObject 中,我希望删除不存在 TagName 的对象

$dataset1 = @(
    @
        MachineName = "AAA"
        ID   = "111"
        TagName = "GroupA"
    ,
    @
        MachineName = "BBB"
        ID   = "222"
        TagName = "GroupB"
    ,
    @
        MachineName = "CCC"
        ID   = "111"
        TagName = ""
    ,
    @
        MachineName = "DDD"
        ID   = "333"
        TagName = ""
    ,
    @
        MachineName = "EEE"
        ID   = "111"
        TagName = ""
    
    

因此,删除后 $dataset1 应包含以下内容:

$dataset1 = @(
    @
        MachineName = "AAA"
        ID   = "111"
        TagName = "GroupA"
    ,
    @
        MachineName = "BBB"
        ID   = "222"
        TagName = "GroupB"
    
   

【问题讨论】:

为什么只是$dataset1 | where $_.TagName -ne "" 【参考方案1】:

您可以使用Where-Object(或别名where)。 Where-Object 返回脚本块语句为真的所有对象

$dataset1 = $dataset1 | Where-Object  $_.TagName 

【讨论】:

以上是关于Powershell中不存在特定对象属性时如何删除条目?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 iOS 的另一个 nsarray 中不存在的核心数据中删除对象?

如何防止 Hibernate 删除 JSON 帖子中不存在的子对象?

如何使用 PowerShell 递归删除具有特定名称的文件夹?

定义表中不存在时删除 jsonb 键

如何使用 PowerShell 从 MSMQ 消息队列中删除特定消息

JavaScript delete关键字