opcode

Powershell: PSObject Werte in beliebige Spalten Eintragen

Hallo es geht um folgendes Script:

    $object1 = New-Object PSObject

    for($i=0; $i -lt 3; $i++)
    {
        $Column_name = "Spalte"  
        $Column_name =  ($Column_name + $i)
        $object1 | Add-Member NoteProperty $Column_name ""       
    }
    $object1.Spalte1 = "ABC"  
    $object1

In Spalte1 trage ich den Text "ABC" ein aber wie kann ich jetzt einen weiteren Wert in Spalte1 Eintragen ohne das der alte überschrieben wird?

Folgende Ausgabe möchte ich generieren.

Spalte0 Spalte1 Spalte2
------- -------
ABC
ABC
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 4549487987

Url: https://administrator.de/forum/powershell-psobject-werte-in-beliebige-spalten-eintragen-4549487987.html

Ausgedruckt am: 09.05.2025 um 12:05 Uhr

4400667902
Lösung 4400667902 08.11.2022 aktualisiert um 19:09:18 Uhr
Goto Top
Das ist dann am Ende Ein Array aus einzelnen Objects.
$objects = @()
$hashtable = @{}
$hashtable.Spalte0 = 'ABC'  
$hashtable.Spalte1 = ''  
$hashtable.Spalte2 = ''  

$objects += [pscustomobject]$hashtable
$hashtable.Spalte0 = 'DEF'  
$objects += [pscustomobject]$hashtable

$objects
Opcode
Opcode 08.11.2022 um 20:18:57 Uhr
Goto Top
Hallo ukulele Danke für die Antwort. Damit bin ich jetzt schon etwas weiter gekommen.

Im Endeffekt habe ich eine Funktion die eine Array Liste ausgibt. Die Liste will ich 9 mal durchlaufen lassen und alle 3 Durchläufe sollen die Daten in eine neue Spalte geschrieben werden. Anschließend möchte ich die Daten dann in einer CSV Datei sichern.

Momentan bin ich soweit das er schon alle 3 Durchläufe die Daten in die Spalten schreibt allerdings stehen die Daten nicht sauber in den Spalten drin. Ich habe zur Verdeutlichung mal einen Screenshot mit angehangen wie momentan die Ausgabe aussieht.

Eigentlich dachte ich das dass ganz einfach gehen würde allerdings beschäftigt mich das ganze jetzt schon einige Tage und Gefühlt habe ich so ziemlich alles getestet.

Für weitere Tipps wie ich das Problem lösen kann wäre ich sehr dankbar.

Remove-Variable * -ErrorAction SilentlyContinue
clear-host

    function GetData([system.collections.arraylist]$ArList)
    {
        [void]$ArList.Add("abc")  
        [void]$ArList.Add("def")  
        [void]$ArList.Add("ghi")  
    }
    
    $objects   = @()
    $hashtable = @{}
    $j         = 0
    $counter   = 2
    [system.collections.arraylist]$ArList=@()


    # Spalten in Tabelle einfügen
    for($i=0; $i -lt 3; $i++)
    {
        $Column_name = "Spalte"  
        $Column_name =  ($Column_name + $i)
        $hashtable.$Column_name = ''  
    }


    for($i=0; $i -lt 9; $i++)
    {
        GetData -ArList $ArList

        $Column_name = "Spalte"  
        $Column_name = $Column_name + $j
        $hashtable.$Column_name = $ArList[$i]
        $objects += [pscustomobject]$hashtable

        # Immer wenn 3 Elemente aus der Arrayliste ausgelesen wurden sollen die Daten in die nächste Spalte geschrieben werden
        if ($i -eq $counter)
        {
            $j = $j+1
            $counter = $counter + 3
        }
    }

    $objects
  
bild_2022-11-08_201509066
4400667902
Lösung 4400667902 08.11.2022 aktualisiert um 23:26:00 Uhr
Goto Top
K.A. wie das aussehen soll (sorry hab schon ein paar Bier zuviel 🤪), so: ... ?
https://tio.run/##bZBRa4MwFIXf8ysuklIlNNi9tUXYYLAfsEeRkWqcSmpckq4U5293N2 ...
Opcode
Opcode 09.11.2022 um 00:24:19 Uhr
Goto Top
Das sieht sehr gut aus Danke. Ich versteh zwar noch nicht alles von dem Code aber das schaue ich mir morgen nochmal in Ruhe an.