Übersicht über Dateierweiterungen

Wenn man sich eine Übersicht über Dateierweiterungen in einem Verzeichnis und allen Unterverzeichnissen verschaffen möchte, kann man folgendes PowerShell-Skript verwenden: types.ps1.

Aufgerufen wird das Skript mit einer Pfadangabe z.B

powershell types.ps1 Dev

oder ohne einer Pfadangabe z.B.

powershell types.ps1

Wenn keine Pfadangabe angegeben wird, dann beginnt die Suche im aktuellen Verzeichnis. Das Ergebnis sieht dann z.B. so aus:

Mehr zu Powershell kannst Du hier finden:

Textzeilen mit PowerShell sortieren

PowerShell ist zwar eine objektorientierte Kommandozeile, aber man kann auch einfachen Text mit der PowerShell bearbeiten. Hier zeige ich, wie man eine einfache Mitgliederliste mit der PowerShell sortieren kann.

Als Ausgangsdatei in den Beispielen verwende ich die Datei „mitglieder.txt“ mit dem folgenden Inhalt:

Um diese Datei nach Vornamen zu sortieren und das Ergebnis in der Datei „mitglieder-sortiert.txt“ zu speichern, genügt folgender Befehl:

Die Ergebnisdatei „mitglieder-sortiert.txt“ sieht danach so aus:

Das war einfach. Was ist aber, wenn wir nach den Nachnamen sortieren wollen?

Das müssen wir irgendwie dem Commandlet „Sort-Object“ sagen. Das tun wir, indem wir jede Zeile ($_) am Leerzeichen („\s+“) aufsplitten und das zweite Wort an „Sort-Object“ übergeben. (Die 1 steht für das zweite Wort, weil 0 für das erste Wort steht):

Die Ergebnisdatei „mitglieder-sortiert.txt“ sieht jetzt so aus:

Die beiden Sortierungen sind aufsteigend. Möchte man absteigend sortieren, dann muss man den Parameter „-Descending“ hinzufügen.

Die Ergebnisdatei sieht dann so aus:

Soviel zum Sortieren von Textdateien mit der PowerShell. Wenn man PowerShell mit den Möglichkeiten von UNIX vergleicht, dann ist PowerShell sehr wortreich. Unter UNIX würde man folgendermaßen nach Nachnamen sortieren:

Daraus darf man aber nicht schlussfolgern, dass PowerShell irgendwie schlechter ist als die UNIX-Tools. UNIX ist nun mal alt und textorientiert und PowerShell zeigt ihre wahren Stärken beim Verarbeiten von objektorientierten Commandlets.