Jak używać funkcji w PowerShell

Jak używać funkcji w PowerShell
Jeśli chcesz użyć Skrypty PowerShell I polecenia W różnych scenariuszach możesz je przekształcić w wielokrotnego użytku Funkcje. PowerShell ma dużą elastyczność pod względem tego, jak reprezentujesz kod w skrypcie.

Jeśli realizujesz zapisanie setek linii kodów w jednym bloku kodu, to nie jest to właściwa metoda, ponieważ zwykle trudno jest odczytać duży blok kodu. Możesz podzielić go na małe funkcje, aby program był bardziej zrozumiały, zorganizowany i wielokrotnego użytku.

Co to jest funkcja w PowerShell?

W Powershell, a funkcjonować to zbiór kodu z opcjonalnym wejściem i wyjściem. Jest to tworzenie sekwencji instrukcji do wykonywania jednego lub wielu razy poprzez po prostu ją wywołując, zamiast kopiować ją wielokrotnie. Funkcja znacznie poprawia czytelność i użyteczność twojego kodu, co znacznie ułatwia radzenie sobie z powtarzanym kodem.

Wymaga parametrów jako wejścia i zwraca wartości przypisane do niektórych zmiennych, potokowane do innych funkcji, lub CMDLETS jako wejście lub wyświetlane jako wyjście na ekranie. Zamiast powtarzać kod, funkcję można wywołać tyle razy, ile potrzeba po zdefiniowaniu w skrypcie. W PowerShell istnieją dwa rodzaje funkcji: podstawowe i zaawansowane.

Podstawowe funkcje w PowerShell

Najprostsza forma funkcji, którą możemy stworzyć w PowerShell, nazywa się „podstawowy”Funkcja. Funkcje te nie wykorzystują żadnej z wbudowanych funkcji. Zestaw nawiasy klamrowe służy do zdefiniowania ciała funkcji. Podczas pracy z funkcjami PowerShell najłatwiejszą opcją dla administratorów jest użycie podstawowych funkcji, ponieważ funkcje te nie mają żadnych odziedziczonych funkcji. Musisz wyraźnie zdefiniować wszystkie strumienie błędów w kodzie funkcji.

Zaawansowane funkcje w PowerShell

Zaawansowane funkcje mają te same właściwości, co funkcje podstawowe, ale zawierają dodatkowe funkcje, których podstawowe funkcje nie mają. Na przykład PowerShell zawiera strumienie takie jak Verbose, ostrzeżenie, debugowanie, błąd itp. Te strumienie są niezbędne do dokładnego wyświetlania wyjścia.

Tworzenie podstawowych funkcji w PowerShell

Teraz sprawdzimy metodę tworzenia podstawowych funkcji w PowerShell. W tym celu otwórz Windows PowerShell Ise i utwórz nowy plik.

Słowo kluczowe funkcji jest używany do deklarowania funkcji w PowerShell, a następnie Nazwa funkcji I nawiasy klamrowe. Kod lub nadwozie funkcji znajduje się w tych kręconych aparatach ortodontycznych .

Funkcja GET-IVERSION
$ PsversionTable.Psversion

Wykonamy to „Get-Version”Funkcja w czasie wykonywania. Teraz zapisz skrypt jako „testFile1.PS1”I uruchom go.

W terminalu PowerShell wywołaj utworzoną funkcję za pomocą jej nazwy.

> Get-Version

Pokaże następujące dane wyjściowe:

Gdy funkcja jest ładowana do pamięci systemowej, możesz wyświetlić funkcje w funkcji PSDRIVE. W tym celu użyj „Get-ChildItem”Polecenie do sprawdzenia elementów dziecięcych funkcji PSDRIVE. Tutaj "-Ścieżka„Opcja jest wykorzystywana do określenia ścieżki funkcji PSDRIVE.

> Get-childitem -path funkcja: \ get-*wersja

Z bieżącej sesji możesz usunąć zdefiniowaną funkcję za pomocą „Usuń przedmiot" Komenda. Wykonaj w tym celu komendę poniżej.

> Get-childitem -path funkcja: \ get-*wersja | Usuń przedmiot

Użyj operatora rur [”|„], Aby polecenie wypuściło elementy dziecięce funkcji PSDRIVE do”Usuń przedmiot" Komenda. A później "Usuń przedmiot”CMDLET usunie utworzone funkcje z sesji.

Aby zweryfikować usunięcie funkcji, przywołaj „Get-Version”Funkcja. Pokaże następujące dane wyjściowe:

Parametr funkcji w PowerShell

Teraz napiszemy funkcję, która pyta wszystkie polecenia systemu i zwraca liczbę poleceń z określonymi nazwami parametrów. Jeśli chcesz to zrobić, wykonaj skrypt poniżej podania w swoim PowerShell:

funkcja get-mrparameterCount
param
[String []] $ ParameTerName
)
foreach ($ parametr w $ parameTerName)
$ Wyniki = get -command -parameTerName $ parametr -erroractionsiLenteContinue
[pScustomObject]@
ParameTerName = $ parametr
NumerOFCMDLETS = $ Wyniki.Liczyć


Teraz wywołaliśmy „Get-MrparameterCount”Z parametrami:

CompUTERNAME, komputer, Servername, host i maszyna:

> Get -MrparameterCount -parameTername Computername, komputer, servername, host, maszyna

Tworzenie zaawansowanych funkcji w PowerShell

Naprawdę łatwo jest przekształcić podstawową funkcję PowerShell w funkcję zaawansowaną. Funkcje zaawansowane mają kilka wspólnych parametrów, które są automatycznie dodawane do funkcji. Teraz przekształcimy podstawową funkcję zdefiniowaną w poprzedniej sekcji w funkcję zaawansowaną:

Funkcja Test-Mrparameter
param
$ Computername
)
Zapis $ computername

Zauważ, że „Test-Mrparameter”Funkcja nie ma wspólnego parametru. Wspólne parametry można przeglądać na różne sposoby. Jedną z metod jest użycie „Get-command”Z„-Składnia„Opcja, aby spojrzeć na składnię:

> Get -command -name test -mrparameter -syntax

Aby funkcja była funkcją zaawansowaną, dodaj „CMDLETBINDING”:

Funkcja test-mrcmdletBinding
[Cmdletbinding ()] #<<-- This turns a regular function into an advanced function
param
$ Computername
)
Zapis $ computername

Ponownie możesz sprawdzić składnię i parametry tej zaawansowanej funkcji, wykonując poniższe polecenia:

> Get-command -name test-MrcmdletBinding -syntax> (get-command -name test-mrcmdletBinding).Parametry.Klucze

Wniosek

Możesz podzielić kod na osobne elementy konstrukcyjne, używając Funkcje w PowerShell. Pomagają nie tylko w rozbiciu kodu na mniejsze i łatwiejsze do zarządzania elementy, ale także zmuszają Cię do tworzenia testowalnego i czytelnego kodu.

Funkcje znacznie poprawiają czytelność i użyteczność kodu, co znacznie ułatwia radzenie sobie z wielokrotnym kodem. Ten artykuł pokazuje kilka metod stosowania Funkcje W PowerShell, w tym podstawowe i zaawansowane.