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

How to delete entries when a specific object property does not exists in Powershell?

例如,在下面的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"
    }
   }

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

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