Co to są skrypty programu Windows PowerShell?

  • PowerShell to język skryptowy, który może pomóc w automatyzacji zadań komputera.
  • Polecenia cmdlet to jednofunkcyjne polecenia programu PowerShell. Możesz wyświetlić dostępne polecenia za pomocą „Get-Command”.
  • Program PowerShell jest dostępny w systemach Windows, macOS i Linux.

PowerShell to język skryptowy, który może pomóc w prostej i niezawodnej automatyzacji zadań komputerowych. Dowiedz się, jak go używać, aby rozpocząć tworzenie skryptów dla komputera z systemem Windows.

Omówienie skryptów programu PowerShell

Aby rozpocząć tworzenie prostych skryptów PowerShell w systemie Windows, musisz wiedzieć o trzech rzeczach:

  • Polecenia cmdlet: polecenia jednofunkcyjne.
  • Parametry: określ co, kiedy, gdzie i jak poleceń cmdlet/poleceń.
  • Pipeline: pobiera dane wyjściowe polecenia cmdlet i jego parametry i łączy je z innymi poleceniami cmdlet i funkcjami.

Łącząc wszystkie trzy, możesz tworzyć proste skrypty pomagające automatyzować zadania.

Oto przykładowy potok pokazujący, jak można połączyć kilka poleceń cmdlet w celu wykonania zadania:

Aby uruchomić ten potok w PowerShell, użyj czegoś takiego:

 Get-Object Potato | Peel-Object | Chop-Object Chips| Cook-Object DeepFry `
  | Place-Object Bowl

Polecenia cmdlet w szczegółach

Jak każdy język skryptowy, PowerShell zawiera wstępnie wbudowane polecenia służące do manipulowania obiektami i wykonywania różnych zadań. Te podstawowe polecenia programu PowerShell nazywane są poleceniami cmdlet.

Polecenia cmdlet (wymawiane jako polecenia-lety) to małe, jednofunkcyjne polecenia używane w środowisku PowerShell z rozszerzeniem .dll. Są to lekkie fragmenty kodu, które ze względu na swój skompilowany charakter wykonują się szybciej niż funkcje.

W programie PowerShell dostępnych jest tysiące poleceń cmdlet. Nie musisz uczyć się ich wszystkich. Możesz zacząć od nauczenia się kilku podstawowych poleceń cmdlet programu PowerShell, a następnie kontynuować naukę w trakcie swojej przygody z tworzeniem skryptów. Aby wyświetlić polecenia cmdlet, które są już zainstalowane na komputerze, uruchom:

 Get-Command 

Jeśli przejrzysz wyniki, zauważysz, że są one zgodne z konwencją nazewnictwa czasownik-rzeczownik. Ułatwia to zrozumienie działania określonego polecenia cmdlet.

Na przykład Get-Command wyświetla listę poleceń dostępnych w PowerShell. Get-Process pobiera aktualnie aktywne procesy, a Copy-Item kopiuje jeden lub więcej plików do określonego katalogu.

Do poleceń cmdlet dołączona jest także obszerna dokumentacja zawierająca przykłady, instrukcje użytkowania i objaśnienia ich funkcjonalności.

Aby dowiedzieć się więcej o konkretnym poleceniu cmdlet i sposobie jego używania, uruchom:

 Get-Help <name-of-cmdlet> 

Wyjaśnienie parametrów programu PowerShell

Polecenia cmdlet mogą akceptować parametry zmieniające ich zachowanie. Po uruchomieniu polecenia cmdlet lub funkcji można podać wartości parametrów, aby określić, co, kiedy, gdzie i jak ma być uruchamiane każde polecenie programu PowerShell.

Na przykład Get-Process pobierze listę wszystkich aktywnych procesów w systemie operacyjnym:

Ale co, jeśli chcesz uzyskać tylko konkretny proces? Można to zrobić za pomocą parametrów. Na przykład, aby uzyskać wszystkie procesy Slack, możesz użyć parametru Name w poleceniu cmdlet Get-Process:

 Get-Process -Name Slack 

Zobaczysz wtedy tylko te procesy o nazwie „slack”:

Niektóre parametry mają charakter „pozycyjny”, co oznacza, że ​​ich nazwa jest opcjonalna. W tym przypadku Get-Process -Name Slack i Get-Process Slack robią to samo.

Każde polecenie cmdlet akceptuje różne typy parametrów. Użyj polecenia Get-Help, aby wyświetlić zaakceptowane parametry polecenia cmdlet w sekcji SKŁADNIA.

 Get-Help Get-Process 

Zobaczysz listę wszystkich możliwych sposobów uruchomienia danego polecenia cmdlet:

W tym przypadku polecenie cmdlet Get-Process akceptuje parametry, takie jak nazwa, identyfikator, nazwa komputera, moduł, informacja o wersji pliku i inne typowe parametry. Symbole tutaj oznaczają:

Symbol

Nazwa

Oznaczający

Pusty

Parametr nie akceptuje danych wejściowych

Łącznik

Wskazuje nazwę parametru

<>

Wsporniki kątowe

Symbol zastępczy tekstu

[]

Wsporniki

Parametr, który może przyjmować jedną lub więcej wartości

{}

Aparat ortodontyczny

Parametr akceptuje zestaw wartości

Parametry akceptujące dane wejściowe będą wskazywać typ wymaganych danych, taki jak ciąg znaków, liczba całkowita, wartość logiczna lub data i godzina. Na przykład to:

 Get-Process [[-Name] <string[]>] 

Oznacza, że ​​parametr Name akceptuje jedną lub więcej wartości typu string, natomiast:

 Get-Process -Id <int[]> 

Oznacza, że ​​parametr Id akceptuje jedną lub więcej wartości całkowitych.

We wcześniejszym przykładzie Get-Process użyto parametru Name do zawężenia wyników. Jeśli jednak chcesz zawęzić zakres do jeszcze bardziej szczegółowego procesu, możesz użyć parametru ID, który wymaga liczby całkowitej, jak podano w jego składni.

 Get-Process -Id 3016 

Powinieneś wtedy zobaczyć tylko jeden proces na liście:

Tworzenie rurociągu

PowerShell traktuje wszystkie dane jako obiekty. Aby zbudować skrypt, obiekty te przepływają przez serię poleceń cmdlet lub funkcji połączonych symbolem potoku ( | ). Wybór odpowiednich poleceń cmdlet i połączenie ich w logiczną sekwencję za pomocą potoku ma kluczowe znaczenie dla skutecznego skryptu.

Załóżmy, że tworzysz skrypt sortujący i wyświetlający pięć plików zajmujących najwięcej miejsca w folderze. Istnieją bardziej niezawodne sposoby tworzenia skryptu sortującego pliki, ale następujący jednostronny opis jest łatwy do zrozumienia:

Aby to zrobić w PowerShell, użyj potoku wyglądającego mniej więcej tak:

 Get-ChildItem -Path "C:\Directory" -File | Sort-Object Length -Descending `
 | Select-Object -First 5 | Format-Table Name, Length -AutoSize

Zapisywanie potoku jako skryptu PS1

Teraz, gdy mamy działający potok, możesz zapisać go jako plik skryptu PS1, dzięki czemu nie musisz go wpisywać za każdym razem, gdy go używasz.

Najprostszym sposobem utworzenia pliku PS1 jest wklejenie skryptu do Notatnika i zapisanie pliku z rozszerzeniem .ps1.

Po utworzeniu pliku PS1 możesz go użyć w PowerShell, uruchamiając ./ScriptName.ps1:

Gratulacje! Możesz teraz tworzyć skrypty PowerShell PS1.

Program PowerShell jest również dostępny w systemach Linux i macOS

PowerShell to jeden z najlepszych języków skryptowych dla początkujących, których każdy może się nauczyć. Chociaż w przeszłości program PowerShell był ograniczony tylko do systemu Windows, zaktualizowana wersja programu PowerShell jest teraz dostępna także w systemie macOS i wielu dystrybucjach systemu Linux! To sprawia, że ​​PowerShell jest jeszcze bardziej atrakcyjny, ponieważ możesz przenieść swoją wiedzę z systemu Windows do innych systemów operacyjnych.