PowerShell Param: składnia, typy, atrybuty, argumenty i przykłady

15 czerwca 2021 16760 Wyświetlenia PowerShell Param: składnia, typy, atrybuty, argumenty i przykłady

Deweloperzy skryptów PowerShell używają bloku Powershell Param do dodawania parametrów do zaawansowanych funkcji. Każdy, kto uruchomi funkcję, może uzyskać dostęp do parametrów dodanych za pomocą PowerShell Param.

Dodatkowo oprócz parametrów dodawanych do funkcji z blokiem Param, Windows PowerShell automatycznie dodaje Common Parameters .

W tym przewodniku omówiono składnię Powershell Param, typy parametrów Powershell, ich atrybuty i argumenty. Podaje również kilka przykładów użycia bloku Param do dodawania parametrów do skryptu lub funkcji.

Przeglądaj tematy postów

Składnia bloku parametrów PowerShell

Składnia bloku parametrów PowerShell

Składnia PowerShell Param to…

|_+_|

Aby dodać parametr do funkcji, zacznij od słowa zatrzymać , po którym następuje blok parametrów (). Oto prosta forma bloku param…

|_+_| ten Powiązanie polecenia cmdlet atrybut jest opcjonalny i jest jedynym atrybutem zdefiniowanym poza blokiem param. Więcej na ten temat w dalszej części poradnika

W bloku Param – param() – zdefiniujesz atrybuty Parametru i ich argumenty. Ponadto atrybut parametru jest zawarty w bloku [()].

W powyższym kodzie składni pogrubiłem wszystkie argumenty parametrów. Argumentów parametrów jest znacznie więcej – te w składni służą jedynie do celów ilustracyjnych i nie są w żaden sposób wyczerpujące.

W bloku parametrów zdefiniujesz argumenty parametrów oddzielone przecinkami. Przykładem atrybutu PowerShell Param jest parametr atrybut.

Dodatkowo przykładem argumentu param jest obowiązkowy argument. Innym przykładem argumentu param jest: Nazwa zestawu parametrów .

Na koniec określisz nazwę parametru. Ponadto określisz również typ danych parametru.

W następnej sekcji omówię popularne typy parametrów PowerShell. Następnie sekcja trzecia obejmuje wspólne atrybuty parametrów i ich argumenty.

Na koniec, w ostatniej części tego przewodnika, podam przykład PowerShell Param z prawdziwego życia SysAdmin. Sekcja zawiera również przykłady użycia bloku param w funkcji zaawansowanej.

Rodzaje parametrów PowerShell

Rodzaje parametrów parametrów PowerShell

Najczęstsze typy parametrów, które można ustawić, to strunowy lub przełącznik parametry. Dodatkowo możesz również zdefiniować int , głupota , Data i godzina lub typy parametrów znaków.

W tej sekcji wyjaśnię niektóre z tych typów parametrów. Podam też kilka przykładów, jak je zdefiniować w bloku param.

Parametry programu PowerShell Strunowy Parametr

Podczas tworzenia parametrów PowerShell prawdopodobnie utworzysz strunowy parametr. A strunowy parametr przyjmuje dowolną wartość ciągu.

W Windows PowerShell ciąg może składać się z liczb, słów lub znaków. W szczególności wszystko, co deklarujesz w podwójnym lub pojedynczym cudzysłowie, jest ciągiem.

W PowerShell typ obiektu ciągu to System.Ciąg .

Aby zadeklarować parametr PowerShell jako parametr ciągu, przed nazwą parametru umieść słowo strunowy w nawiasach. Oto przykład…

|_+_|

Parametry programu PowerShell int Parametr

jakiś int typ danych to 32-bitowa liczba całkowita ze znakiem. w języku angielskim int to liczba, na przykład 1, 2 lub 3.

W przeciwieństwie do strunowy typ danych parametru, który może przyjmować dowolny typ danych, an int parametr jest bardzo nakazowy.

Jeśli zdefiniujesz int parametr, parametr może przyjmować tylko liczby. Ponadto, jeśli wpiszesz słowa jako wartość dla int parametr, PowerShell zgłosi komunikat o błędzie.

Zanim pokażę Ci, jak zdefiniować PowerShell Param int parametr, oto ogólny przykład, jak zdefiniować typ danych int…

|_+_|

Jeśli uruchomię kod w PowerShell, to zwróci 123 .

PowerShell Param int Parametr

Wręcz przeciwnie, jeśli zamienię 123 na to jest int, PowerShell zwróci komunikat o błędzie.

|_+_|

Teraz, kiedy miałeś i int kurs awaryjny typu danych, aby stworzyć PowerShell Param int parametr o nazwie numer, oto kod…

|_+_|

Zmusi to użytkowników Twojego skryptu lub funkcji do podania odpowiedniego typu danych.

Parametry programu PowerShell Data i godzina Parametr

Jak i int parametr, a Data i godzina parametr jest również bardzo nakazowy w stosunku do akceptowanych danych wejściowych. Jak sama nazwa wskazuje, Data i godzina parametr akceptuje tylko dane wejściowe w formacie Data i Czas.

Jeśli chcesz zdefiniować parametr PowerShell, który będzie akceptował tylko daty, użyj przykładowego kodu poniżej…

|_+_|

W tym przykładzie Wprowadź datę to nazwa parametru. Dodatkowo, Data i godzina definiuje typ danych.

Parametry programu PowerShell Przełącznik Parametr

W pierwszych trzech podrozdziałach tej sekcji omówiłem typy parametrów PowerShell, które wymagają danych wejściowych od użytkownika.

Istnieje jednak typ parametru programu PowerShell, który nie wymaga wprowadzania danych od użytkownika. W przeciwieństwie do innych typów parametrów, a przełącznik parametr nie wymaga wprowadzania danych przez użytkownika.

Sposób, w jaki definiujesz a przełącznik parametr jest podobny do sposobu definiowania innych typów parametrów. Jednak w miejsce przełącznik , int , lub data i godzina , użyj słowa przełącznik .

Na przykład, aby zdefiniować parametr PowerShell Przełącznik parametr, EksportujCSV , użyj poniższego kodu…

|_+_|

Wreszcie, w tej sekcji możesz się zastanawiać nad zastosowaniem przełącznik parametry. Pomyśl o skrypcie lub funkcji PowerShell, które mogą wyświetlać wyniki w konsoli Powershell.

Możesz także dać użytkownikowi możliwość wyeksportowania wyniku do pliku tekstowego lub pliku CSV.

Jednym ze sposobów zakodowania funkcji jest utworzenie 3 parametrów przełącznika. Użytkownik może następnie wybrać jeden z parametrów, w zależności od tego, w jaki sposób funkcja ma dostarczyć wynik.

Ten typ parametru nie wymaga od użytkownika wprowadzania danych wejściowych. Po prostu wybierając parametr, funkcja wyświetli odpowiednio dane wyjściowe.

Możesz także zdefiniować inne parametry PowerShell z określonymi typami danych. Aby dowiedzieć się więcej o typach danych PowerShell, odwiedź ten link – Jak zdefiniować typy danych PowerShell .

Atrybuty i argumenty parametrów parametrów programu PowerShell

Atrybuty i argumenty parametrów parametrów programu PowerShell

W składni parametrów PowerShell tego przewodnika zasugerowałem, że parametr PowerShell ma atrybuty. Ponadto wskazałem również, że każdy atrybut parametru ma również argumenty.

W tej sekcji omówię atrybuty parametrów i ich argumenty.

Aby wyjaśnić atrybuty parametrów i ich argumenty, odniosę się do składni param PowerShell przedstawionej w pierwszej sekcji tego przewodnika.

|_+_|

Parametry programu PowerShell Powiązanie polecenia cmdlet Atrybut

ten Powiązanie polecenia cmdlet atrybut jest zwykle podawany przed blokiem param. Kiedy zdefiniujesz Powiązanie polecenia cmdlet PowerShell rozpozna skrypt jako funkcję zaawansowaną.

W sekcji dotyczącej składni tego przewodnika użyłem tego kodu jako uproszczonej wersji bloku param.

|_+_|

W tej sekcji skupię się na Powiązanie polecenia cmdlet Atrybut część kodu. Oto jak zdefiniować Atrybut

|_+_|

W kolejnych 3 podrozdziałach omówię niektóre z typowych argumentów, które można zdefiniować w Powiązanie polecenia cmdlet atrybut.

Aby uniknąć wątpliwości, musisz zdefiniować wszystko Argumenty w obrębie () bloku Atrybut . Ponadto MUSISZ oddzielić wszystkie atrybuty przecinkiem (,), z wyjątkiem ostatniego Argumenty w ciągu Atrybut .

Parametry programu PowerShell DefaultParameterSetName Argument

Podczas tworzenia funkcji programu PowerShell może ona zawierać wiele parametrów, których użytkownik może użyć w tym samym poleceniu. Ponadto ta sama funkcja PowerShell może zawierać inny zestaw parametrów, których użytkownik może użyć w innym poleceniu.

Jednak użytkownik nie może mieszać parametrów z pierwszego zestawu z parametrami z drugiego zestawu.

Ponadto twórca funkcji definiuje wszystkie parametry, których użytkownik może użyć w tym samym poleceniu z Nazwa zestawu parametrów argument. ten Nazwa zestawu parametrów argument jest zdefiniowany w Atrybucie Parametru (więcej na ten temat w następnej sekcji).

Implikacją posiadania różnych zestawów zgrupowanych parametrów jest to, że będziesz mieć różne Nazwa zestawu parametrów s.

Z innym Nazwa zestawu parametrów s w bloku param, możesz zdecydować się na zdefiniowanie jednego z Nazwa zestawu parametrów s domyślnie. Tutaj używasz DefaultParameterSetName Argument.

ten DefaultParameterSetName Argument jest zdefiniowany w Powiązanie polecenia cmdlet blok atrybutów. Oto przykład…

|_+_|

Na koniec, aby zachować nasz format bloku parametrów programu PowerShell, ponownie wprowadzę poniższy blok parametrów…

|_+_|

Parametry programu PowerShell Obsługuje powinien proces Argument

To kolejny argument, który możesz zdefiniować w Powiązanie polecenia cmdlet Atrybut . Jak DefaultParameterSetName Argument, Obsługuje powinien proces Argument jest opcjonalny.

ten Obsługuje powinien proces Argument dodaje Potwierdzać oraz Co jeśli wspólne parametry funkcji.

Aby dodać ten argument, dodaj przecinek (,) na końcu DefaultParameterSetName argument. Następnie dodaj linię – Obsługuje powinien proces =$prawda lub $fałsz.

Uwzględniając ten nowy argument, Powiązanie polecenia cmdlet Atrybut będzie teraz wyglądać tak…

|_+_|

Parametry programu PowerShell HelpURI Argument

Jeśli znasz PowerShell Uzyskać pomoc Cmdlet, być może natknąłeś się na jego online parametr. Kiedy uciekasz Uzyskać pomoc z online PowerShell otwiera stronę pomocy online polecenia cmdlet.

Na przykład, aby otworzyć stronę pomocy online polecenia cmdlet Out-File, uruchom poniższe polecenie…

|_+_|

Strona otwarta tym poleceniem jest zdefiniowana w funkcji przez HelpURI Argument. Jeśli więc chcesz, aby użytkownicy mieli dostęp do strony pomocy online Twojej funkcji, zdefiniuj HelpURI Argument.

Oto przykład…

|_+_|

Teraz dołączę ten ostatni argument do Powiązanie polecenia cmdlet Atrybut . Oto zaktualizowany kod…

|_+_|

Parametry programu PowerShell Parametr Atrybut

W PowerShell Param Powiązanie polecenia cmdlet Podsekcja Atrybut, omówiłem 3 argumenty, które możesz zawrzeć w Powiązanie polecenia cmdlet Blok atrybutów.

Jak zauważyłeś, Powiązanie polecenia cmdlet Blok atrybutów jest jedynym atrybutem zdefiniowanym poza blokiem param.

W tej podsekcji dowiesz się o Atrybucie Parametru. Dodatkowo dowiesz się również o typowych argumentach, które możesz dodać do tego Atrybutu.

Jak można wywnioskować z przykładów już użytych w tym przewodniku, atrybut parametru definiuje argumenty, które kontrolują zachowanie parametru param programu PowerShell.

Atrybut parametru można zdefiniować, umieszczając słowo Parametr, po którym następuje nawias () w bloku []. Oto przykład…

|_+_|

Idąc dalej, MUSISZ zdefiniować wszystkie argumenty atrybutu parametru w bloku ().

W kolejnych podrozdziałach sekcji PowerShell Param Parameter Attribute przedstawię i wyjaśnię typowe argumenty, które można zdefiniować w atrybucie parametru.

Parametry programu PowerShell Nazwa zestawu parametrów Argument

Kiedy wyjaśniłem DefaultParameterSetName wcześniej w tym przewodniku przedstawiłem Nazwa zestawu parametrów Argument. Za pomocą tego argumentu można wsadowo lub grupować parametry, które użytkownik może uruchomić w tym samym poleceniu.

Na przykład, aby zdefiniować a Nazwa zestawu parametrów nazywa NazwaZestawuParametrów1 , wprowadź poniższy kod w bloku Atrybut parametru ().

|_+_|

Kiedy wprowadzam ten zaktualizowany kod, blok param mojego przykładowego kodu będzie teraz wyglądał tak..

|_+_|

Jeśli przyniosę z powrotem Powiązanie polecenia cmdlet atrybut, mój przykładowy kod parametrów PowerShell będzie teraz wyglądał tak…

|_+_|

Parametry programu PowerShell Obowiązkowy Argument

Możesz użyć Obowiązkowy argument określający, czy parametr jest wymagany czy opcjonalny. ten Obowiązkowy argument przyjmuje wartość $prawda lub $fałsz – $prawda oznacza wymaganie, $fałsz, niewymagane.

Ponadto Obowiązkowy argument jest opcjonalny. Jeśli jednak ten argument nie zostanie zdefiniowany, parametr będzie traktowany jako opcjonalny.

Aby zdefiniować Obowiązkowy Argument, dodaj poniższy kod do bloku atrybutu parametru…

|_+_|

Wreszcie, jeśli uwzględnię Obowiązkowy Kod argumentu do mojego kodu parametrów PowerShell, teraz będę miał…

|_+_|

Parametry programu PowerShell Pozycja Argument

ten Pozycja Argument atrybutu parametru określa pozycję parametru. Wartość jest liczbą całkowitą, zaczynając od 0 (zero).

Korzyść z Pozycja Argumentem jest umożliwienie użytkownikom uruchamiania funkcji przy użyciu pozycji parametrów. W szczególności, gdy zdefiniujesz Pozycja Argument, użytkownik może wprowadzić wartości dla każdego parametru w wierszu poleceń bez określania parametru.

PowerShell następnie przypisze każdą wartość w wierszu poleceń zgodnie z pozycją parametru.

Na przykład Get-ChildItem Polecenie cmdlet ma parametr o nazwie Ścieżka (z pozycją 0). Polecenie cmdlet ma również inny parametr, Filtr (z pozycją 1).

Domyślnie, jeśli uruchomię Get-ChildItem polecenia, muszę podać nazwy parametrów przed dodaniem ich wartości. Zobacz polecenie poniżej…

|_+_|

W tym poleceniu wywołałem parametry, a następnie określiłem ich wartości.

Argument pozycji parametru PowerShell

Ponieważ jednak znam pozycje tych 2 parametrów, mogę dodawać wartości w ich pozycjach bez wyraźnego wywoływania parametrów. Następnie zmodyfikuję moje polecenie, jak pokazano poniżej…

|_+_|

Oczywiście oszczędza mi to czasu! Jeśli jednak patrzysz na długi kod PowerShell, może to spowodować pewne zamieszanie.

Polecenie daje ten sam wynik w PowerShell…

PowerShell automatycznie przypisze wartości w pozycjach do parametrów na podstawie ich Pozycja Argument.

Idąc dalej, oto jak definiujesz Pozycja Argument…

|_+_| W tym przykładzie moja pozycja parametru to 0 (zero). Kiedy zdefiniuję mój następny parametr, będzie on znajdował się na pozycji 1 i tak dalej. Nie możesz mieć dwóch parametrów na tej samej pozycji. W dalszej części przewodnika dowiesz się, jak dodać jeden parametr w tej samej pozycji, ale z różnymi nazwami zestawu parametrów.

Dodam teraz ten argument do mojego przykładowego kodu…

|_+_|

Parametry programu PowerShell Wartość z potoku Argument

Innym powszechnie używanym rozszerzeniem parametrów jest Wartość z potoku Argument. Jak sama nazwa wskazuje, ten argument określa, czy parametr akceptuje wartości z potoku.

To tak definiujesz ten argument…

|_+_|

Jeśli dodam ten nowy argument do kodu, będzie on wyglądał tak…

|_+_|

Jest jeszcze jeden argument zwany Wartość z potoku według nazwy właściwości . Aby przeczytać o tym argumencie, odwiedź about_Functions_Advanced_Parameters .

Parametry programu PowerShell PomocWiadomość Argument

Możesz użyć tego argumentu, aby określić komunikat, aby pokazać użytkownikom, jak używać parametru. Aby zdefiniować PomocWiadomość Argumentuj za parametrem, użyj kodu podobnego do poniższego…

|_+_|

A oto teraz mój zaktualizowany kod…

|_+_|

Do tej pory w tej sekcji omówiłem 2 atrybuty parametrów PowerShell – Powiązanie polecenia cmdlet oraz Parametr . Dodatkowo omówiłem również typowe argumenty, które można zdefiniować dla tych atrybutów.

W pozostałych 3 podrozdziałach tej sekcji nauczę Cię 3 częściej używanych atrybutów parametrów PowerShell. Jednak te 3 atrybuty nie wymagają definiowania argumentów.

Parametry programu PowerShell Alias Atrybut

Atrybut alias służy do określenia aliasów parametru. Jak można się domyślić, zamiast parametru można użyć aliasu parametru PowerShell.

Zanim pokażę, jak zdefiniować atrybut aliasu dla parametru, najpierw pokażę, jak znaleźć aliasy wszystkich poleceń cmdlet i funkcji na komputerze.

Aby wyświetlić listę wszystkich aliasów poleceń cmdlet i funkcji, uruchom poniższe polecenie

|_+_|

Spowoduje to wyświetlenie listy wszystkich aliasów…

Atrybut aliasu PowerShell Param

Przejść do Alias Atrybut, aby zdefiniować jeden dla parametru parametru PowerShell, użyj kodu podobnego do poniższego…

|_+_| W tym przykładzie FP jest aliasem parametru.

Jeśli dodam to do kodu, zaktualizowana wersja będzie wyglądać tak…

|_+_|

Parametry programu PowerShell Obsługuje symbole wieloznaczne Atrybut

Ten atrybut param parametru określa, czy parametr akceptuje symbole wieloznaczne. Oto jak definiujesz ten atrybut…

|_+_|

Parametry programu PowerShell ValidateNotNullOrEmpty Atrybut walidacji

Podobnie jak większość atrybutów już omówionych w tym przewodniku, nazwa tego atrybutu również go zdradza. Jest to atrybut walidacji.

Gdy zdefiniujesz ten atrybut, parametr NIE zaakceptuje wartości null ($null). Dodatkowo nie zaakceptuje pustej wartości ().

Jeśli użytkownik wprowadzi $null lub , funkcja zgłosi błąd. Aby zdefiniować ten atrybut, wprowadź poniższy kod…

|_+_|

Na koniec zaktualizuję swój kod o ostatnie 2 atrybuty…

|_+_|

Nazwa parametru parametru PowerShell

Po zdefiniowaniu wszystkich atrybutów i argumentów parametru należy dodać nazwę parametru. Parametr param PowerShell jest definiowany jak zmienna – ze znakiem dolara ($), po którym następuje nazwa parametru.

Możesz również opcjonalnie wprowadzić typ danych dla parametru. W sekcji 2 tego przewodnika omówiłem różne typy parametrów PowerShell.

Oto jak definiujesz parametr, który można zaakceptować strunowy typ danych.

|_+_|

Oto mój zaktualizowany przykład kodu…

|_+_|

Jak zdefiniować jeden parametr PowerShell w wielu zestawach parametrów

Jak zdefiniować jeden parametr PowerShell w wielu zestawach parametrów

Jeśli dopiero zaczynasz kodować funkcje PowerShell, prawdopodobnie wpadniesz w pokusę wielokrotnego definiowania jednego parametru.

Jednym z powodów, dla których możesz chcieć mieć parametr wiele razy, jest użycie parametru w wielu zestawach parametrów (wiele zestawów parametrów).

Aby przenieść to do domu, załóżmy, że tworzysz funkcję PowerShell, która ma Ścieżka parametr. Jednak masz 2 nazwy zestawów parametrów, które wymagają parametru Path.

Większość nowych użytkowników skryptów PowerShell prawdopodobnie zdefiniuje parametry pokazane poniżej…

|_+_|

Jeśli zdefiniujesz parametry, jak pokazano powyżej, otrzymasz komunikat o błędzie. Aby przetestować tę teorię, skopiuję kod do PowerShell ISE .

Jak zdefiniować jeden parametr PowerShell w wielu zestawach parametrów

Więc jak to naprawić? Rozwiązaniem jest zdefiniowanie 2 atrybutów parametrów i ich argumentów — w tym ich nazw ParameterSetNames.

Następnie na końcu obu atrybutów parametrów zdefiniuj nazwę pojedynczego parametru, która jest wspólna dla obu atrybutów parametrów. W poprzednim przykładzie usunę pierwszą nazwę parametru, a ostatnią zostawię.

|_+_|

Teraz, jeśli skopiuję ten kod do PowerShell ISE, wszystko będzie dobrze.

W tym przykładzie zauważ, że argumenty parametrów dla obu atrybutów parametrów mogą być zupełnie różne. Dodatkowo możesz zdefiniować dowolną liczbę atrybutów parametrów.

Przykłady parametrów PowerShell

Przykłady parametrów PowerShell

W tej ostatniej części przewodnika podam przykład rzeczywistych parametrów SysAdmin PowerShell.

Podczas pisania tego przewodnika zacząłem opracowywać skrypt/funkcję PowerShell, aby uzyskać rozmiar folderu i liczbę plików. Oto część param funkcji…

|_+_|

W kilku następnych podrozdziałach tej sekcji wyjaśnię różne elementy param. Wreszcie ostatnia sekcja wprowadza blok funkcyjny i dodaje blok param do funkcji.

Aby ułatwić Ci śledzenie wierszy w kodzie, do którego odwołuje się w następnych podsekcjach, pobierz PowerShellParamExample.zip . Następnie rozpakuj plik i otwórz plik .ps1 w programie PowerShell ISE .

Nazwa zestawu parametrów Przykład parametru PowerShell

Mój przykładowy kod parametru PowerShell ma trzy nazwy zestawów parametrów — WyświetlWynik , EksportujTxt oraz EksportujCSV . Użyłem tych nazw, aby łatwo zidentyfikować, co robią.

We wstępie do tej sekcji wspomniałem, że funkcja, którą buduję za pomocą tego kodu param, będzie wyświetlać rozmiar folderu i liczbę plików dla każdego podfolderu w określonym folderze.

W związku z tym trzy ParameterSetNames oferują użytkownikowi opcję wyświetlania wyników w konsoli programu PowerShell. Alternatywnie użytkownik ma możliwość wyeksportowania wyniku do pliku tekstowego lub pliku CSV.

Ponadto każdy Nazwa zestawu parametrów zdefiniować wszystkie parametry, które użytkownik może wywołać w jednym poleceniu. W oparciu o ten pomysł budowana przeze mnie funkcja będzie miała trzy opcje poleceń lub składnie.

Rozwinię tę ideę w kolejnych podrozdziałach i przykładach.

Powiązanie polecenia cmdlet Atrybut I DefaultParameterSetName Przykłady argumentów

W poprzednich rozdziałach tego przewodnika natknąłeś się na Powiązanie polecenia cmdlet Atrybut. Co więcej, natknąłeś się również na jeden z jego argumentów – DefaultParameterSetName .

ten DefaultParameterSetName argument jest używany do zdefiniowania domyślnego zestawu parametrów, który wywołuje funkcja. W tym przykładzie domyślna nazwa zestawu parametrów to WyświetlWynik .

ten DefaultParameterSetName jest zadeklarowana w pierwszej linii kodu.

PowerShell spróbuje użyć zestawu parametrów zadeklarowanego przez DefaultParameterSetName jeśli nie może określić, którego zestawu parametrów użyć. Jeśli jednak ustawisz parametry obowiązkowe, możesz uniknąć tego problemu.

W każdym razie nie ma nic złego w zadeklarowaniu domyślnej nazwy zestawu parametrów.

Ścieżkę foldera Przykład parametru ciągu

Tu zaczyna się zabawa! ten Ścieżkę foldera parametr służy do wprowadzenia ścieżki folderu, funkcja uzyska rozmiar swoich podfolderów – i policzy liczbę plików w każdym podfolderze.

To jest parametr ciągu. Oznacza to, że akceptuje dowolny ciąg jako dane wejściowe.

Jedna ekscytująca funkcja Ścieżkę foldera parametr jest taki, że jest wspólny dla 3 nazw zestawów parametrów. Wcześniej w tym artykule wyjaśniłem wyzwanie, przed jakim mogą stanąć nowi twórcy skryptów PowerShell w tej sytuacji.

Aby zadeklarować Ścieżkę foldera parametr w trzech nazwach zestawów parametrów, utworzyłem trzy atrybuty parametrów.

Atrybut pierwszego parametru znajduje się między wierszami 5 i 11. Dodatkowo ten atrybut pierwszego parametru ma wiele argumentów.

Chciałbym jednak, abyś zwrócił szczególną uwagę na Nazwa zestawu parametrów argument - WyświetlWynik .

Przykład parametru ciągu FolderPath

Po drugie, między liniami 12 i 18 zadeklarowałem kolejny atrybut parametru z a Nazwa zestawu parametrów argument zwany EksportujTxt .

Wreszcie między wierszami 19 i 25 zadeklarowałem trzeci atrybut parametru z a Nazwa zestawu parametrów argument zwany EksportujCSV .

Przykład parametru ciągu FolderPath

Co więcej, jeśli zauważysz, w przeciwieństwie do deklarowania 3 atrybutów parametrów, zadeklarowałem pojedynczy Alias , oraz ValidateNotNullOrEmpty atrybuty. Te atrybuty można znaleźć w wierszach 26 i 27.

Przykład parametru ciągu FolderPath

Na koniec tuż pod wszystkimi atrybutami i ich argumentami umieściłem nazwę parametru – Ścieżkę foldera . Nazwa parametru znajduje się w linii 28.

Przykład parametru ciągu FolderPathW ostatniej podsekcji tej sekcji zobaczysz, jak funkcja wyświetla ten parametr w 3 składniach poleceń.

WyświetlWynik , EksportujTxt i EksportujCSV Przykład parametru przełącznika

Od linii 29 kodu param zadeklarowałem kolejny zestaw atrybutów parametrów i ich argumentów.

Po pierwsze, między wierszami 29 i 37 deklaruję atrybuty parametrów i argumenty dla WyświetlWynik parametr.

Następnie między wierszami 38 i 47 deklaruję inny parametr o nazwie EksportujTxt .

Przykład parametru DisplayResult, ExportTxt i ExportCSV

Wreszcie między wierszami 48 i 57 zadeklarowałem EksportujCSV parametr.

Wszystkie 3 parametry, które opisałem w tej sekcji, są Przełącznik parametry. Jak już wiesz, oznacza to, że parametry nie wymagają żadnego wkładu ze strony użytkownika.

Gdy użytkownik wybierze dowolny parametr, funkcja zmienia sposób wyświetlania wyników.

Jak używać PowerShell Param w funkcji PowerShell

W tej podsekcji chcę wprowadzić blok funkcyjny PowerShell do mojego przykładowego kodu.

Składnia bloku funkcyjnego PowerShell to…

|_+_|

W ostatnim przykładzie w tym przewodniku zamienię blok param PowerShell w składni funkcji na mój kod param z ostatniej podsekcji. Dodatkowo zamienię funkcję na Get-FolderSizeFileCount , nazwa funkcji.

Ostateczna funkcja będzie teraz wyglądać tak…

|_+_| W tym przykładzie bloki Początek {}, Proces {} i Koniec {} są puste.

Testowanie moich parametrów PowerShell w funkcji PowerShell

W tej ostatniej sekcji przetestuję parametry funkcji utworzonej w ostatniej sekcji.

Jeśli chcesz sam to przetestować, możesz pobrać kod klikając w ten link – Get-FolderSizeFileCount.zip . Następnie rozpakuj plik zip.

Po rozpakowaniu pliku otwórz PowerShell i uruchom poniższe polecenie:

|_+_| Zmień na pełną ścieżkę do rozpakowanego pliku.

Po uruchomieniu polecenia otrzymasz komunikat ostrzegawczy. Po wyświetleniu monitu wprowadź r i naciśnij klawisz Enter na klawiaturze.

Testowanie moich parametrów PowerShell w funkcji PowerShell

Po zaimportowaniu modułu na tej samej konsoli PowerShell uruchom poniższe polecenie:

|_+_|

Oto wynik polecenia…

Chcę ci pokazać sekcję SKŁADNIA na stronie pomocy mojej funkcji. Z powyższego zrzutu ekranu możesz uruchomić polecenie Get-FolderSizeFileCount w 3 różnych poleceniach:

|_+_|

Pierwszą rzeczą, na którą należy zwrócić uwagę, jest to, że trzy składnie mają Ścieżkę foldera parametr ciągu. Jeśli przeczytasz ten przewodnik, dowiesz się dlaczego.

Dodatkowo zauważysz, że pierwsza składnia ma WyświetlWynik parametr przełącznika. Wreszcie w drugiej i trzeciej składni masz EksportujCSV , oraz EksportujTxt parametr przełącznika odpowiednio.

Dodatkowo Ścieżkę foldera , oraz EksportujCSV parametry i EksportujTxt parametry odpowiednio w drugiej i trzeciej składni, mają również Ścieżka raportu parametr ciągu. Nie wspomniałem o tym parametrze, ponieważ kod deklaracji jest podobny do Ścieżkę foldera kod, z niewielkimi różnicami. ten Ścieżka raportu służy do określenia ścieżki, w której funkcja zapisze raporty tekstowe i pliki CSV.

To wszystko – kompleksowy przewodnik po paramie PowerShell! Mam nadzieję, że okazało się to pomocne?

Jeśli uznałeś to za pomocne, uprzejmie zagłosuj tak do Czy ten post był pomocnym pytaniem poniżej.

Alternatywnie możesz zadać pytanie, zostawić komentarz lub przekazać więcej opinii za pomocą formularza Zostaw odpowiedź, który znajduje się na końcu tej strony.

Aby uzyskać więcej informacji o strefach PowerShell tech S, odwiedź naszą stronę z instrukcjami dotyczącymi programu Windows PowerShell. Bardzo pomocna może być również nasza strona Praca z Home.

Referencje i dalsza lektura

  1. Jak zdefiniować typy danych PowerShell
  2. about_Functions_Advanced_Parameters
  3. about_Functions_CmdletBindingAttribute