zzaaiiggaa
Goto Top

Powershell - Hashtable in Hashtable ?

Hallo zusammen,

ich habe folgendes problem:

Ich habe viele Files von denen ich den Namen einlese zb.:
Datei1
Dateixy

Jetzt will ich intern eine Hashtable erzeugen die immer als Name den Namen des Files nimmt also zb. "Dateixy" und
als Value soll eine andere Hashtable "flagfile" eingetragen werden.
Name - "Dateixy"
Value - "Flagfile Hashtable" oder auch Objects egal was

$flagfile=@{Flag1 = $false; Flag2 = $false; Flag3 = $false; Flag4 = $false}


Wie genau lege ich jetzt so eine Hashtable - also nicht "gefühlt".
Und wie benutze face-smile ich sowas!


Vielen Dank face-smile !!!!


PS. Oder wie mache ich das am besten? Informationen über .pdfs speichern?

Content-ID: 465127

Url: https://administrator.de/forum/powershell-hashtable-in-hashtable-465127.html

Ausgedruckt am: 22.12.2024 um 08:12 Uhr

colinardo
Lösung colinardo 23.06.2019 aktualisiert um 12:42:47 Uhr
Goto Top
Servus,
das kann man machen, in Powershell nutzt man für sowas aber in der Regel Custom Objects oder man weist den PDF Objekten die man sich über Get-ChildItem holt mit Add-Member direkt weitere Eigenschaften zu.

Ein Beipspiel mit Custom Objects
$pdfdata = @()
Get-Childitem 'd:\Ordner' -File -Filter *.pdf | %{  
    $pdfdata += [pscustomobject]@{Name=$_.Fullname;Flag1 = $true; Flag2 = $false}
}
$pdfdata
Noch einfacher und ohne extra Custom Objects lassen sich weitere Member dem eigentlichen Objekt von Get-Childitem direkt in der Pipeline zuweisen und auch in nachfolgenden Schritten darauf zugreifen.
Get-Childitem 'd:\Ordner' -File -Filter *.pdf | Add-Member -Membertype Noteproperty -Name MyFlags -Value @{Flag1 = $true; Flag2 = $false} -Passthru | Select FullName,MyFlags  
Das zu den üblichen Methoden die man so nutzt.


Um trotzdem nochmal auf deine Frage zurück zu kommen ob man eine Hashtable in einer Hashtable erzeugen kann: Ja natürlich. der Wert eines Keys kann sämtliche Objekte aufnehmen.
Get-Childitem 'd:\Ordner' -File -Filter *.pdf  | %{  
    @{
        Name = $_.Fullname
        Flags = @{Flag1 = $true; Flag2 = $false}
    }
}
Vorteil von Objekten statt reiner Hashtables ist auch das du sie direkt z.B. an Export-CSV übergeben kannst wenn du die Daten in Dateien exportieren möchtest.

Grüße Uwe
ZZaaiiggaa
ZZaaiiggaa 23.06.2019 um 16:18:38 Uhr
Goto Top
Vielen Dank!! Deine Skripte helfen wirklich SEHR WEITER!!! Tolle Arbeit!


Toller Beitrag vielen Dank!!!