Tipps

Geschweifte Klammern im Powershell Format-Operator benutzen am Beispiel GUIDs

Powershell hat mit dem Format-Operator -f eine geniale Möglichkeit, Texte zu formatieren. Der Format-Operator erlaubt es, Daten in einen Text zu "kopieren" und Zahlen auch gleich nach Bedarf in ein passendes Format zu bringen. Hier ein kleines Beispiel, um das Ergebnis einer Berechnung zu runden und in einen Text einzufügen:

$FolderSize = Get-Childitem -Path $env:programFiles -file -recurse | Measure-Object -Property Length -Sum
'Der Ordner {0} ist {1:0.000} MB groß' -f $env:programFiles,($Foldersize.Sum/1MB)
Der Ordner C:\Program Files ist 9169,447 MB groß

Die Syntax ist recht simpel - Sie generieren einen String, schreiben aber statt der Variablen, die in den Text eingefügt werden sollen, Platzhalter. Die Platzhalter sind durchnummeriert, beginnen bei 0 und sind in geschweifte Klammern eingefasst. Genau genommen sind die Nummern in geschweiften Klammern der Index eines Arrays, nämlich des Arrays, das Sie hinter dem Format-Operator -f angeben. {0} entspricht also dem ersten Wert hinter -f, {1} dem zweiten usw. Zahlen können Sie formatieren lassen. Geben Sie hierfür hinter dem Platzhalter einen Doppelpunkt an, und dann für jede Pflichtstellt vor dem Komma eine 0, und für jede Pflichtstelle hinter dem Komma ebenfalls eine Null. Komma wird aufgrund der amerikanischen Schreibweise mit . (Punkt) angegeben. Damit eine Zahl immer mit einer Stelle vor und drei Stellen hinter dem Komma angegeben wird, schreiben Sie also: {0:0.000}. Es gibt auch eine ganze Reihe anderer Optionen. So können Sie mit {0:C} z.B. automatisch ein Währungsformatierung (Currency) mit zwei Stellen hinter dem Komme und dem Währungssymbol der einstellten Sprache erzwingen. Eine Auflistung der Operatoren finden Sie unter https://social.technet.microsoft.com/wiki/contents/articles/7855.powershell-using-the-f-format-operator.aspx

Der Format-Operator lässt sich auch prima zum Einfügen von Zeichen verwenden, z.B. um eine Variable in Klammern oder Anführungszeichen einzufassen:

'[{0}]' -f "Ein Text in Klammern"
'"{0}"' -f "Ein Text in Anführungszeichen"

Interessant wird es, wenn man einen Text in geschweifte Klammern einfügen möchte, denn dann sperrt sich der Formatoperator.

'{{0}}' -f (New-guid).guid
{0}

Um einen Wert in geschweifte Klammern einzufügen, müssen Sie doppelte geschweifte Klammern verwenden, insgesamt also drei öffnende und drei schließende Klammern:

'{{{0}}}' -f (New-guid).guid
{ee1b6042-4c1d-4838-a824-1aab1c9ec0b0}

 


 344,    25  Apr  2019 ,   Tipp
Holger Voges

  E-Mail Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!

Holger Voges ist Inhaber der Firma Netz-Weise IT-Training und seit 1999 als Trainer und Consultant tätig. Als Allrounder in den Bereichen Windows Server, Active Directory, SQL Server, Hyper-V und Windows PowerShell, hat er in der Vergangenheit zahlreiche Einsätze als Consultant in namenhaften Firmen absolviert und so neben der Theorie auch umfangreiche praktische Erfahrungen gesammelt.

 

Netz-Weise

Das Haupt-Tätigkeitsfeld von Netz-Weise sind Schulungen für Profis. Bei uns bekommen Sie das Programm für den fortgeschrittenen Praktiker, der die Tiefen des Systems ausloten möchte genauso wie Standard-Schulungen.

So erreichen Sie uns:

Netz-Weise
IT-Training und Beratung
Freundallee 13a
30173 Hannover
 
Tel: (0511) 165 925-0
Fax: (0511) 165 925-99
email: info(at)netz-weise.de
 

Newsletter bestellen

Das Wichtigste kompakt ins E-Mailfach!