Zahlen formatieren mit PowerShell
Das Formatieren von Zahlen in PowerShell ist kein Problem. Oft wird ein Wert ausgelesen, oder Berechnungen durchgeführt, doch die Anzeige des Integer-Wertes ist nicht schön. Deswegen gibt es in PowerShell die Möglichkeit Zahlen formatieren zu lassen, um sie besser Lesen zu können. Hierzu wird kein spezielles Cmdlet benötigt.
Zahlen formatieren mit PowerShell
Windows PowerShell ist sehr mächtig und bietet uns auch die Möglichkeit Integer-Werte in ein anderes Format zu wandeln. Gemeint ist damit die Darstellung, beziehungsweise Umwandlung von Zahlen. Folgende Formatierungen können mit Integer-Werten durchgeführt werden:
- Nummerisch (Numeric)
- Währung (Currency)
- Dezimal (Decimal)
- Prozent (Percentage)
- Hexadezimal (Hexadecimal)
Ein Standard-Aufruf zum Formatieren von Werten lautet wie folgt:
"{0:N0}" -f $WERT
- Die “0” vor dem Doppelpunkt gibt den Index an, dieser bleibt beim Formatieren in der Regel 0.
- Das “N” ist das Spezifikationssymbol, und gibt in diesem Fall an, dass der Wert nummerisch gewandelt werden soll.
- Die “0” nach dem Spezifikations-Symbol gibt die Genauigkeit nach dem Komma an. “N3” würde daher 3 Stellen nach dem Komma ausgeben.
Als Beispiel nutze ich die Entfernung von München nach Berlin in Meter.
$AbstandMUCBER= 585000 "{0:N0} m" -f $AbstandMUCBER #Ausgabe #585.000 m
Spezifikations-Symbole (Specifier)
Wie oben schon genannt, ist es möglich verschiedene Formate von Integer Werten zu wandeln. So ist es möglich Nummerisch zu formatieren, Zahlen als Währung, Dezimal, als Prozentsatz oder sogar Hexadezimal auszugeben. Damit PowerShell weiß, wie die Zahl formatiert werden soll, gibt es die Spezifikationssysmbole.
- N = Nummerisch
- C = Währung
- D = Dezimal
- P = Prozent
- X = Hexadezimal
Somit ist es ganz einfach Zahlen in einem bestimmten Form ausgeben zu können. Als Beispiel an der Zahl 70:
$wert = 70 "{0:N2}" -f $wert "{0:D6}" -f $wert "{0:C2}" -f $wert "{0:P0}" -f $wert "{0:X0}" -f $wert #AUSGABE 70,00 000070 70,00 € 7.000 % 46
Wichtig ist also den richtigen Specifier zu nutzen.
Zahl in nummerischen Wert formatieren
Um einen Integer-Wert in eine nummerische Zahl zu wandeln, kann man den gleichen Befehl verwenden, der schon im Beispiel genutzt wurde.
"{0:N2}" -f 89
Als Ergebnis wird “89,00” ausgegeben, da zwei Nachkommastellen angegeben wurden.
Wert in eine Währung wandeln
Oft möchte man eine Zahl auch als Währung ausgeben. Genutzt wird dazu die vom System verwendete Währung, beziehungsweise das Land. Da vor allem der Cent-Bereich bei einer Währung interessant ist, benutzen wir folgenden Befehl:
"{0:C2}" -f 89
Als Ergebnis liefert uns PowerShell “89,00 €”.
Integer in eine Dezimal-Zahl formatieren
Eine einfache Zahl möchte man oft als Dezimal-Zahl darstellen. Oft ist es auch nötig den Wert in einer 6-stelligen Darstellung anzuzeigen. Hierfür wird folgendes verwendet:
"{0:D6}" -f 89
Hier liefert PowerShell “000089” als Ergebnis.
Zahl als Prozent-Wert ausgeben
PowerShell kann auch Zahlen als Prozent-Wert ausgeben. Der Vorteil ist auch hier, dass das Prozent-Zeichen mit ausgegeben wird. Hier verwenden wir den Specifier “P”.
"{0:P0}" -f 89
Das Ergebnis ist hier “8.900 %”.
Zahl als Hexadezimalen Wert formatieren
Zum Schluss möchte ich noch zeigen, wie man eine Zahl zu einem hexadezimalen Wert formatiert. Auch hier ist der PowerShell Befehl sehr ähnlich:
"{0:X0}" -f 89
Hexadezimal ist die Zahl 89 der Wert “59”.