Powershell Objektunterschiede
Hallo,
ich bin noch relativ neu in der Powershell und habe da jetzt mal ein kleines Problem.
Ich vermute, dass mir da noch einiges an Wissen fehlt was die Objekte in Powershell angeht und hoffe, dass mir da jemand ein wenig helfen kann.
Folgender Testcode funktioniert soweit Super, aber wenn ich Block 1 deaktiviere und direkt das vom Import-CSV erzeugte Object verwenden möchte, funktioniert nur der erste Eintrag bzw der 2. Eintrag schlägt immer fehl. Sind mindestens 2 Einträge in der CSV vorhanden, funktioniert es auch ohne Probleme.
Ich habe schon versucht Unterschiede zwischen den beiden Objekten zu ermitteln, aber ich kann einfach nichts finden... :/
Gruß
schrubba
ich bin noch relativ neu in der Powershell und habe da jetzt mal ein kleines Problem.
Ich vermute, dass mir da noch einiges an Wissen fehlt was die Objekte in Powershell angeht und hoffe, dass mir da jemand ein wenig helfen kann.
Folgender Testcode funktioniert soweit Super, aber wenn ich Block 1 deaktiviere und direkt das vom Import-CSV erzeugte Object verwenden möchte, funktioniert nur der erste Eintrag bzw der 2. Eintrag schlägt immer fehl. Sind mindestens 2 Einträge in der CSV vorhanden, funktioniert es auch ohne Probleme.
$script:scriptpath = Split-Path $script:MyInvocation.MyCommand.Path
# ----- Block 1 -----
$script:test = @()
$testimport = Import-Csv $script:scriptpath\test.csv -Delimiter ";"
foreach($tmp_import in $testimport){
$script:test += [PSCustomObject] @{testID = $tmp_import.testID; testname = $tmp_import.testname; default = $tmp_import.default}
}
# ----- Block 1 -----
#$script:test = Import-Csv $script:scriptpath\test.csv -Delimiter ";"
$script:test += [PSCustomObject] @{testID = 33; testname = "one"; default = 0}
$script:test += [PSCustomObject] @{testID = 34; testname = "two"; default = 1}
$script:test += [PSCustomObject] @{testID = 35; testname = "three"; default = 1}
$script:test += [PSCustomObject] @{testID = 36; testname = "four"; default = 0}
$script:test
Ich habe schon versucht Unterschiede zwischen den beiden Objekten zu ermitteln, aber ich kann einfach nichts finden... :/
Gruß
schrubba
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 302169
Url: https://administrator.de/forum/powershell-objektunterschiede-302169.html
Ausgedruckt am: 26.06.2025 um 11:06 Uhr
2 Kommentare
Neuester Kommentar

Moin,
der Grund ist ganz einfach: Wenn sich in der CSV nur ein Eintrag befindet ist das Ergebnis nur ein einfaches Objekt und kein Array aus Objekten mehr. Also erstellst du entweder erst das Array und fügst dann die durch Inport-CSV importierten Objekte dem Array hinzu oder klammerst den Import-CSV mit einem Array-Ausdruck
oder
Nur einem Array kannst du hier weitere Objekte hinzufügen, keinem einzelnen Objekt selber.
Gruß jodel32
der Grund ist ganz einfach: Wenn sich in der CSV nur ein Eintrag befindet ist das Ergebnis nur ein einfaches Objekt und kein Array aus Objekten mehr. Also erstellst du entweder erst das Array und fügst dann die durch Inport-CSV importierten Objekte dem Array hinzu oder klammerst den Import-CSV mit einem Array-Ausdruck
$script:test = @()
$script:test += Import-Csv $script:scriptpath\test.csv -Delimiter ";"
$script:test = @(Import-Csv $script:scriptpath\test.csv -Delimiter ";")
Gruß jodel32