doctordeploylogo
  [ Prev ] [ Next ] | [ Home ] [ Sitemap ] .. -... .. -.- .-. .- ... ...

Sort Field as Number in Powershell

10/2016

Angenommen wir haben eine schöne CSV-Datei, die wir mit dem Import-Csv Cmdlet von Powershell weiterverarbeiten möchten...

Die einfachste Variante ist die CSV-Datei einzulesen und auf dem Bildschirm auszugeben:

Sieht schon mal ganz gut aus, allerdings kann man das noch etwas besser formatieren, damit man alle Felder lesen kann:

Schön übersichtlich, aber jetzt wäre es noch klasse, wenn die Liste auch sortiert wäre... Zuerst mal nach Namen:

Einwandfrei! Und jetzt nach den Passmarkwerten, damit wir die Rechner nach CPU-Geschwindigkeit auflisten können:

Nanu? Das ist aber komisch sortiert... :(
Das liegt daran, dass Powershell jede Variable erst mal als String behandelt und deswegen eine "294" unter einer "2924" sortiert wird.
Aber keine Bange, wir müssen Powershell nur sanft darauf hinweisen, dass das zu sortierende Feld eine Zahl ist und schon wird das gewünschte Ergebnis geliefert:

Cool! Sogar absteigend sortiert, d.h. die schnellen Rechner zuerst und die "Gurken" am Ende der Liste. :)

Tipp: Das Type Casting geht mit allen Powershell Datentypen.