Jak wiesz w Powershell mamy dostęp do wszystkich funkcji .NET. A zbiór funkcji .NET dotyczący formatowania napisów jest naprawdę olbrzymi! Wystrczy przyjrzeć się dokumentacji funkcji ToString(), która potrafi zrobić napis praktycznie ze wszystkigo. Oczywiście do zbudowania ładnego napisu w powershell nie trzeba znać wszyskich możliwych funkcji. Oto jedn użyteczny przykład:
[string]::Format("Value {0:0.00} and value {1:p}", 1.23, 0.45)
Wywołujemy tutaj fukcję statyczną typu string. Wywołanie buduje się w ten sposób, że do nazwy typu po podwójnym dwukropku dodajesz nazwę funkcji, u nas:
[string]::Format
No i teraz najciekawsze, czyli jak wyglądają argumenty funkcji Format.
- Pierwszy argument to napis, który definiuje miejsca i format, w których mają się pojaić dynamiczne elementy napisu.
- Część napisu jest stała
- Zapis {0:0.00} oznacza: na zerowym miejscu (bo numerujemy od zera) ma się znaleźć pierwsza wartość przekazana do funkcji format po przecinku i ma być to liczba z dwoma miejscami po przecinku
- Zapis {1:p} oznacza: na pierwszym miejscu (czyli na drugim bo numerujemy od zera) ma się znaleźć druga wartość do sformatowania przekazana do funkcji format, i należy ją wyświetlać jako procent (literka p)
- Pierwsza wartość do sformatowania – tutaj po porstu liczba dziesiętna
- Druga wartość do sformatowania – tutaj procent
Najważniejsze więc to wiedzieć jakie sposoby formatowania posiadamy. Oto kilka przykladów:
- Standardowe formaty liczbowe: https://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx
- Standardowe formaty daty i czasu: https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx
- Własne formaty liczbowe: https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx
- Własne formaty daty i czasu: https://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx
Dodajmy jeszcze, że ku naszej wygodzie wspomniane na początku polecenie można też zapisać:
"Value {0:0.00} and value {1:p}" -f (1.23, 0.45)
Dla każdego coś miłego!