Oczywistym celem każdego skryptu jest działanie zgodnie z założeniami. Często skupiony na celu zapominam o czytelności kodu lub komentarzach. Mówię wtedy, „dodam, poprawie później”. Te później zdarza na tyle później, że bardzo boli.

Dlatego 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. Ehh

Można to złamać 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. Spowoduję to 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 zauważ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 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.

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 bywa czasochłonna 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. Często taki wynik przekazuję do schowka – clip.exe, aby móc szybko wkleić wynik funkcji do skryptu.

Poniżej funkcja wraz z innymi przykładami.

Mateusz Nadobnik

Z pasją poświęcam czas na zdobywanie wiedzy w zakresie szeroko rozumianej Data Platform. Zachwycony językiem skryptowym Windows PowerShell. Swoją wiedzę, doświadczenia i spostrzeżenia opisuję na blogu.

read more