none
Foreach + Hashtable RRS feed

  • Frage

  • Hallo,

    ich habe einen Odner inkl. Dateien. Aus dem Ordner möchte ich aus dem Dateinamen 2 Werte in eine Hashtable schreiben und am Ende eine komplette Hashtable mit allen Informationen bekommen.


    $Sammlung =(Get-ChildItem -Path C:\Inventur\Ordner).Name
    
    
    foreach($item in $Sammlung)
    
    
    {
         $Dateiname = $item
        $Name = $item.Split("_")
        $Name = $T[0]
                                }
    
    $table = @{
    
    Dateiname = $Dateiname
    Name = $Name
    
    
    }

    So bekomme ich leider immer nur den letzten Wert in meine Hashtable.

    Wie kann ich die Tabelle "fortlaufend" füllen?


    Gruß Toni

    Freitag, 13. März 2015 13:09

Antworten

  • Hallo,

    ich glaube du willst keine Hashtabelle sondern ein Array mit 2 Spalten, in der ersten soll der Dateiname stehen, in der 2 der Teil des Namens der vor dem ersten _ steht?

    Wenn ich mit meiner Interpretation richtig liege kannst Du das so machen.

    $Array = Get-ChildItem | Select-Object Name, @{Name='Teil vor dem _';Expression = {($_.Name.split('_'))[0]}}

    Wenn nicht liefere bitte Beispiele, sprich Dateinamen und wie das Ergebnis aussehen soll.

    In deinem Code laesst Du eine foreach laufen auf alle Dateien, nachdem die letzte bearbeitet ist, gibts du dessen Werte in eine Hastable aus, deshalb taucht dort auch nur die letzte auf, aber was du willst kannst du glaube ich nicht mit einer Hashtable loesen.

    Beste Gruesse
    brima

    • Als Antwort markiert tonibert Sonntag, 15. März 2015 09:13
    Freitag, 13. März 2015 16:16

Alle Antworten

  • Hallo,

    ich glaube du willst keine Hashtabelle sondern ein Array mit 2 Spalten, in der ersten soll der Dateiname stehen, in der 2 der Teil des Namens der vor dem ersten _ steht?

    Wenn ich mit meiner Interpretation richtig liege kannst Du das so machen.

    $Array = Get-ChildItem | Select-Object Name, @{Name='Teil vor dem _';Expression = {($_.Name.split('_'))[0]}}

    Wenn nicht liefere bitte Beispiele, sprich Dateinamen und wie das Ergebnis aussehen soll.

    In deinem Code laesst Du eine foreach laufen auf alle Dateien, nachdem die letzte bearbeitet ist, gibts du dessen Werte in eine Hastable aus, deshalb taucht dort auch nur die letzte auf, aber was du willst kannst du glaube ich nicht mit einer Hashtable loesen.

    Beste Gruesse
    brima

    • Als Antwort markiert tonibert Sonntag, 15. März 2015 09:13
    Freitag, 13. März 2015 16:16
  • Danke!

    Deine Interpretation war mal wieder richtig!

    LG


    Gruß Toni

    Sonntag, 15. März 2015 09:13