从powershell中的Object中删除一个或多个成员

时间:2016-04-08 18:29:29

标签: arrays powershell object

我创建了一个名为$info的自定义对象,并将其移动到数组$arr, 如何删除一个成员及其所有属性?

我的剧本:

Get-Process  | ForEach-Object{ 
    $info = New-Object -TypeName PSObject
    $info | Add-Member -Type NoteProperty -Name Process -Value $_.processname
    $info | Add-Member -Type NoteProperty -Name ID -Value $_.id
    $arr +=  $info
}

$arr | ft -AutoSize

结果如下:

Process                           ID
-------                           --
ApplicationFrameHost           38556
AppVShNotify                    9792
armsvc                          2336
atieclxx                        6944
atiesrxx                        1844
audiodg                        59432
CcmExec                         3988
chrome                         46068

如何删除一个特定成员,例如“audiodg 59432”被删除

audiodg                        59432

1 个答案:

答案 0 :(得分:2)

这里的术语有点不正确。成员在单个对象上。当您使用上面的Add-Member时,您要为每个单独的对象添加属性,那么您将返回一个对象数组。

您正在询问如何从阵列中删除单个对象。

在PowerShell中,您无法从数组中删除项目。您可以根据某些条件筛选数组并创建一个新数组:

$newArr = $arr | Where-Object { $_.Name -ne 'audiodg' }
# or
$newArr = $arr | Where-Object { $_.ID -ne 59432 }