Tausendertrennzeichen für Dateigrössen in der PowerShell

Standardmässig gibt die PowerShell beim dir-Befehl (bzw. Get-ChildItem für Directories) Dateigrössen ohne irgendwelche Zifferngruppierung aus, d.h. ohne Tausendertrennzeichen, welche Dateigrössen jenseits von einigen Megabytes überhaupt erst lesbar machen. Das ist für ein sonst so modernes System eigentlich sehr erstaunlich; das konnte MS-DOS wahrscheinlich schon vor 20 Jahren schon besser!

Eine Abklärung in dieser Sache, welche ich diese Woche gemacht habe, ergab zum Glück das Resultat, dass Abhilfe möglich und sogar recht einfach ist, wenn man weiss wie.

Dieser Artikel in einem Blog namens FatBeard’s Adventures in PowerShell zeigt sehr schön die Grundzüge des Prinzips: Wenn Get-ChildItem seine Objekte der Klasse System.IO.FileInfo zu einer textuellen, kolonnenorientierten Darstellung wandelt, entnimmt es die Informationen, wie genau zu formattieren sei, einem XML-File namens FileSystem.Format.ps1xml in der $PSHOME Directory.

Man kann von einem solchen .ps1xml File eine Kopie erstellen, an dieser Änderungen vornehmen, und dann der PowerShell mit Hilfe des Update-FormatData-Kommandos und dessen Option -prependPath mitteilen, dass die Kopie zuerst zu konsultieren sei. (Am besten nimmt man eine entsprechende Zeile in seine $PROFILE Datei auf.)

Es ist relativ einfach, in besagtem File betreffend Filesystem-Klassen folgenden XML-Abschnitt zu lokalisieren, der für die fragliche Kolonne mit den Filegrössen zuständig ist:

<TableColumnItem>
   <PropertyName>Length</PropertyName>
</TableColumnItem>

… und ihn zu ersetzen durch den folgenden:

<TableColumnItem>
   <ScriptBlock>
      [String]::Format("{0:N0}",$_.Length)
   </ScriptBlock>
</TableColumnItem>

Die Kolonne von jetzt 10 Zeichen, die dann für die verbesserte Darstellung nicht mehr reichen, zu verbreitern auf z.B. 15 Zeichen, ist ebenfalls schnell gemacht.

Wer will, kann natürlich noch weiter gehen, etwas mehr programmieren im SkriptBlock und grosse Zahlen in Einheiten von KB, MB und GB ausgeben. Mir persönlich genügen Dateigrössen hübsch mit Tausendertrennzeichen vorerst. Sehen wir in ein paar Jahren weiter, wenn das Zeitalter der Gigabytes, in dem wir uns heute befinden, abgelöst wird durch das Zeitalter der Terabytes.

Veröffentlicht in Keine Kategorie. Schlagwörter: . Leave a Comment »

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: