【问题标题】:How to delete entries when a specific object property does not exists in Powershell?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 "" }

标签: powershell powershell-2.0 powershell-3.0 powershell-4.0


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2016-04-26
    • 1970-01-01
    • 2018-10-03
    • 2015-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多