Oczywistym celem każdego skryptu jest działanie zgodnie z założeniami. Często chęć skończenia skryptu jest tak duża, że zapominam o czytelności kodu lub komentarzach. Mówię wtedy, „dodam później” lub „napiszę to lepiej potem”. Potraficie sobie wyobrazić jak te „później” wygląda?

Dlatego chcę uczulić, że warto dbać o pewne rzeczy już od samego początku. To, czego unikam to wywołanie funkcji z kilkunastoma parametrami w jednej linii, co daje nam w rezultacie to, co niżej. Potrzebę przewijania w prawo.

Jednym z sposobów na to jest złamanie linii polecenia stosując znak ` (backtick) tak jak poniżej. Wygląda to już znacznie lepiej.

Po znaku końca linii nie może znaleźć się żaden inny znak, szczególnie uważaj na białe znaki. Taki szczegół spowoduje wywołanie polecenia z pominięciem parametrów.

Na szczęście można łatwiej i przejrzyście. W tym celu proponuję stosowanie splatting, jako metodę przekazywania parametrów do poleceń, funkcji PowerShell.

Czym jest Splatting?

Jak wyżej wspomniałem splatting to metoda przekazywania parametrów a dokładniej zbioru wartości parametrów do polecenia. Nazwy parametrów wraz z wartościami zapisuję się w tablicy mieszającej (hash tabel).

Jak zzauważyłeś przy samym wywołaniu polecenia znak dolara $ w nazwie zmiennej zastępujemy znakiem @. Symbol @ informuję PowerShell, że przekazujesz zbiór wartości zamiast pojedynczej wartości. Wartości te zostaną skojarzone z parametrami wywołanego polecenia.

Możemy łączyć sposoby przekazywania parametrów, czyli dodawać parametry do funkcji, które nie znalazły się w tablicy. Jednak trzeba uważać na zduplikowanie parametrów.

3 zalety stosowania PowerShell Splatting

  1. Przede wszystki przejrzystość i czytelność kodu.
  2. Łatwość walidacji wartości parametrów przed wywołaniem polecenia.
  3. Możliwość ponownego wykorzystania zestawu parametrów, co skraca ilość kodu w skrypcie.

Format-ToSplatting

Taka forma zapisu jest przejrzysta, ale wymaga więcej czasu tym bardziej, że przygotowując taką tablice nie skorzystamy z Intellisense. Dlatego chce podzielić się z Tobą skryptem, który pomoże Ci w tym procesie.

Funkcja Format-ToSplatting zwraca przygotowaną tablicę mieszającą wraz z opisami parametrów (jeśli istnieją) w miejscu dla naszych wartości. Wynik funkcji przekaż do schowka clip.exe aby móc szybko wkleić wynik do swojej funkcji.

Funkcja Format-ToSplatting wraz z innymi przykładami do pobrania tutaj.

22 Najważniejsze Wskazówki Pisania Skryptów PowerShell

Mateusz Nadobnik

Zachwycony językiem skryptowym Windows PowerShell. Swoją wiedzę, doświadczenia i spostrzeżenia opisuję na blogu.

read more