Arrays
Aus Wiki-WebPerfect
Inhaltsverzeichnis
Variable als Array definieren
$Variable = @()
In einer Foreach-Schlaufe, mehrere PowerShell-Objekte in ein Array laden/hinzufügen (+=)
Wenn mehrere PowerShell-Objekte in Array geladen werden müssen, muss man das Array zuerst definieren. -> $Array = @()
Falls der Array nicht im vorhinein definiert wird, erscheint folgender Fehler:
Method invocation failed because [Microsoft.Management.Infrastructure.CimInstance] does not contain a method named 'op_Addition'.
Item aus einem Array entfernen
Um ein Item aus einem Array entfernen zu können, muss das Array zuerst als System.Collections.ArrayList definiert werden:
[System.Collections.ArrayList]$Array = $Array
danach kann mit der Methode Remove das Item entfernt werden:
$Array.Remove("zu_entfernendes_item")
Wenn das Array nicht zuerst als System.Collections.ArrayList definiert wird, erscheint folgende Fehlermeldung:
Exception calling "Remove" with "1" argument(s): "Collection was of a fixed size."
Weitere Informationen:
- http://www.jonathanmedd.net/2014/01/adding-and-removing-items-from-a-powershell-array.html
- https://www.sapien.com/blog/2014/11/18/removing-objects-from-arrays-in-powershell/
Array to Hashtable to JSON (Name: Value)
Input
Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 27.05.2016 01:46 773288 accesschk.exe -a---- 27.05.2016 01:44 403120 accesschk64.exe -a---- 01.11.2006 13:06 174968 AccessEnum.exe -a---- 12.07.2007 06:26 50379 AdExplorer.chm -a---- 14.11.2012 10:22 479832 ADExplorer.exe
Generate Name: Value JSON-Table
$Items = Get-ChildItem -Path * -File $report = @() Foreach ($Item in $Items) { $table = @{ $Item.Name = $Item.Length } $report += $table } $report | ConvertTo-Json
Output
$report | ConvertTo-Json [ { "accesschk.exe": 773288 }, { "accesschk64.exe": 403120 }, { "AccessEnum.exe": 174968 }, { "AdExplorer.chm": 50379 }, { "ADExplorer.exe": 479832 } ]