Frage zu Powershell Custom Object
Hallo,
ich will mir in Powershell ein Objekt mit mehreren "Datensätzen" Erzeugen.
so..
$object = New-Object –TypeNamePSObject
$object | Add-Member –MemberTypeNoteProperty –Name OSBuild –Value $os.BuildNumber
..kann ich mir ja ein neues Objekt erzeugen und Members sowie Werte hinzufügen.
Ich will jedoch dass $object eine Art Array wird in dem ich weitere Datensätze hinzufügen oder auch löschen kann.
Geht das mit New-Object, wenn aj wie?
Danke!
Schroller
ich will mir in Powershell ein Objekt mit mehreren "Datensätzen" Erzeugen.
so..
$object = New-Object –TypeNamePSObject
$object | Add-Member –MemberTypeNoteProperty –Name OSBuild –Value $os.BuildNumber
..kann ich mir ja ein neues Objekt erzeugen und Members sowie Werte hinzufügen.
Ich will jedoch dass $object eine Art Array wird in dem ich weitere Datensätze hinzufügen oder auch löschen kann.
Geht das mit New-Object, wenn aj wie?
Danke!
Schroller
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 241785
Url: https://administrator.de/contentid/241785
Ausgedruckt am: 22.11.2024 um 10:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo Scroller,
ja kein Problem, Beispiel mit einer ArrayList:
alternativ kannst du es auch mit einem Standardarray so machen:
Zum entfernen benutzt du dann die Standardmethoden zum Filtern der Einträge mit Where-Object (Im Beispiel ist ?{} die Abkürzung dafür)
Noch zur Info so nebenbei: Ab PS3.0 gibt es noch einen performanteren Weg "CustomObjects" zu erzeugen:
Grüße Uwe
ja kein Problem, Beispiel mit einer ArrayList:
# Arraylist erzeugen
$array = new-object System.Collections.ArrayList
# Objekte mit Eigenschaften und zugehörigen Werten erzeugen
$obj1 = new-Object PSObject -Property @{"Eigenschaft1"=Auto";"Eigenschaft2"="BMW"}
$obj2 = new-Object PSObject -Property @{"Eigenschaft1"="Motorrad";"Eigenschaft2"="Ducati"}
# Objekte zur ArrayList hinzufügen (das out-null verhindert nur das der Index auf der Konsole ausgegeben wird)
$array.Add($obj1) | out-null
$array.Add($obj2) | out-null
# Objekte aus dem Array löschen
# ... via Objekt
$array.Remove($obj1)
# ... via Index
$array.RemoveAt(0)
# ... via Index für einen Range z.B ab Index 0 entferne 2 Objekte
$array.RemoveRange(0,2)
# Array erzeugen
$array = @()
# Objekte direkt an das Array anhängen
$obj1 = new-Object PSObject -Property @{"Eigenschaft1"=Auto";"Eigenschaft2"="BMW"}
$obj2 = new-Object PSObject -Property @{"Eigenschaft1"="Motorrad";"Eigenschaft2"="Ducati"}
# Einträge daraus löschen
# z.B. das erste Objekt im Array anhand dessen Wert
$array = $array | ?{$_.Eigenschaft1 -ne "Auto"}
Noch zur Info so nebenbei: Ab PS3.0 gibt es noch einen performanteren Weg "CustomObjects" zu erzeugen:
$obj = [pscustomobject]@{Wert1=1; Wert2=2; Wert3=3}