none
Array sortieren RRS feed

  • Frage

  • Hallo,

    ich habe eine Liste mit folgenden Namensbeispiel eingelesen_

    SG_APP_Microsoft_Office_2003_w7_x86_de

    SG_PAT_Microsoft_Office_2003_w7_x86_de

    Ich lasse diese Liste auch sortieren, nur wird sie für meine Verwendung falsch sortiert. Wie bekomme ich es hin, nach dem Herstellernamen sortiert wird und nicht nach der 1,2,3,4,5 ... Stelle?

    Liebe Grüße

    Norbert


    IT Berater


    • Bearbeitet NBC2009 Freitag, 4. März 2016 11:56 Rechtschreibung
    Freitag, 4. März 2016 11:52

Antworten

  • Man kann SkriptBlöcke an Sort-Objekt übergeben, nach denen der zu sortierende Ausdruck ermittelt wird. Es wird dann aber das vollständige Objekt weitergegeben, d.h. es geht nichts verloren.

    Weil das bei dir 2x Microsoft ist, habe ich es mal durch A, B und C ersetzt:

    $a = "SG_APP_B_Office_2003_w7_x86_de","SG_PAT_A_Office_2003_w7_x86_de","SG_PAT_C_Office_2003_w7_x86_de"
    
    $a | sort {($_ -split "_")[2]}
    Dadurch kannst du auch z.B. als Text gespeicherte Zahlen als Zahl sortieren und als Text weitergeben lassen. Oder Datums-Strings intern mit Get-Date zum Datum machen und danach sortieren lassen.

    Freitag, 4. März 2016 12:58

Alle Antworten

  • Indem du die Information heraustrennst, nach der du sortieren willst. 

    Was ist denn bei dir der Herstellername und wonach kann man ihn bestimmen?

    Freitag, 4. März 2016 12:00
  • Hi,

    Mein Beispiel: SG_APP_Microsoft_Office_2003_w7_x86_de

    Ich nehme aus der Namensliste jedes Objekt und zerlege den Namen mit dem Trennzeichen "_".

    Entsprechend ist der Herstellername [2]

    Aber wie sieht so was aus, verlegen, sortieren, zusammenbauchen und dann weiterverarbeiten?


    IT Berater

    Freitag, 4. März 2016 12:14
  • Man kann SkriptBlöcke an Sort-Objekt übergeben, nach denen der zu sortierende Ausdruck ermittelt wird. Es wird dann aber das vollständige Objekt weitergegeben, d.h. es geht nichts verloren.

    Weil das bei dir 2x Microsoft ist, habe ich es mal durch A, B und C ersetzt:

    $a = "SG_APP_B_Office_2003_w7_x86_de","SG_PAT_A_Office_2003_w7_x86_de","SG_PAT_C_Office_2003_w7_x86_de"
    
    $a | sort {($_ -split "_")[2]}
    Dadurch kannst du auch z.B. als Text gespeicherte Zahlen als Zahl sortieren und als Text weitergeben lassen. Oder Datums-Strings intern mit Get-Date zum Datum machen und danach sortieren lassen.

    Freitag, 4. März 2016 12:58