2016-04-08 18 views
1

我創建了一個名爲$info的自定義對象並將它移動到一個數組$arr, 如何刪除一個成員及其所有屬性?從powershell中刪除一個或多個成員

我的腳本:

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
+0

FWIW - 當你使用'所以如果你只是需要給他們打電話ft'對其進行格式化您實際上刪除與其相關聯的所有屬性確保格式是你用這個對象做的最後一件事。 – nkasco

回答

2

你術語在這裏有點不正確。成員在單個對象上。當您使用上面的Add-Member時,您將爲每個單獨的對象添加屬性,然後返回一組對象。

你在問如何從數組中刪除單個對象。

在PowerShell中,您無法從陣列中刪除項目。你可以根據某些條件,而不是過濾陣列,並創建一個新的:

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