Arrays

Aus Wiki-WebPerfect
Wechseln zu: Navigation, Suche

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:




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
    }
]