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-Key: 465127

Url: https://administrator.de/contentid/465127

Printed on: April 20, 2024 at 11:04 o'clock

Member: colinardo
Solution colinardo Jun 23, 2019 updated at 10:42:47 (UTC)
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
Member: ZZaaiiggaa
ZZaaiiggaa Jun 23, 2019 at 14:18:38 (UTC)
Goto Top
Vielen Dank!! Deine Skripte helfen wirklich SEHR WEITER!!! Tolle Arbeit!


Toller Beitrag vielen Dank!!!