Podstawowe informacje o pracy z PowerShell
- PowerShell to wszechstronny język skryptowy, który ułatwia automatyzację różnorodnych działań na komputerze.
- Cmdlety, czyli polecenia cmdlet, to pojedyncze instrukcje wykonywane w środowisku PowerShell. Dostępne polecenia można wyświetlić za pomocą polecenia „Get-Command”.
- Aplikacja PowerShell działa na systemach Windows, macOS i Linux.
PowerShell to język skryptowy, który pozwala na łatwą i stabilną automatyzację zadań komputerowych. Zapoznaj się z jego możliwościami, aby zacząć tworzyć własne skrypty na komputerach z systemem Windows.
Przegląd skryptów PowerShell
Aby zacząć pisać proste skrypty w PowerShell na platformie Windows, trzeba zrozumieć trzy podstawowe elementy:
- Polecenia cmdlet: pojedyncze instrukcje, które realizują konkretne zadania.
- Parametry: za ich pomocą precyzuje się działanie poleceń, określając co, kiedy, gdzie i jak mają być wykonane.
- Potok (pipeline): umożliwia przekazywanie wyników jednego polecenia do innego, tworząc sekwencję działań.
Łącząc te trzy elementy, można konstruować proste skrypty, które automatyzują powtarzalne czynności.
Przykładowy potok ilustruje, jak łączyć kilka poleceń cmdlet w celu wykonania konkretnego zadania:
Aby uruchomić przedstawiony potok w PowerShell, należy użyć instrukcji podobnej do poniższej:
Get-Object Potato | Peel-Object | Chop-Object Chips| Cook-Object DeepFry `
| Place-Object Bowl
Szczegóły dotyczące poleceń cmdlet
Podobnie jak inne języki skryptowe, PowerShell zawiera wbudowane polecenia do manipulowania obiektami i wykonywania różnorodnych zadań. Te podstawowe polecenia nazywane są cmdletami.
Cmdlety (czyt. komendlety) to małe, pojedyncze polecenia, używane w środowisku PowerShell i zapisane w plikach z rozszerzeniem .dll. Są to lekkie fragmenty kodu, które dzięki swojej skompilowanej formie działają szybciej niż funkcje.
W PowerShell dostępne są tysiące cmdletów. Nie ma konieczności uczenia się ich wszystkich od razu. Na początek warto poznać kilka podstawowych poleceń i sukcesywnie rozszerzać swoją wiedzę w miarę postępów w nauce tworzenia skryptów. Aby zobaczyć listę cmdletów zainstalowanych na komputerze, wpisz:
Get-Command
Analizując wyniki, łatwo zauważyć, że nazwy cmdletów składają się z czasownika i rzeczownika. Taka konwencja ułatwia zrozumienie ich działania.
Na przykład, Get-Command wyświetla listę dostępnych poleceń. Get-Process pobiera listę aktualnie działających procesów, a Copy-Item służy do kopiowania plików i folderów.
Do cmdletów dołączona jest szczegółowa dokumentacja z przykładami, instrukcjami użycia oraz wyjaśnieniem ich funkcji.
Aby dowiedzieć się więcej o konkretnym cmdlecie i jego parametrach, wpisz:
Get-Help <nazwa-cmdletu>
Wyjaśnienie parametrów programu PowerShell
Polecenia cmdlet mogą przyjmować parametry, które modyfikują ich działanie. Po uruchomieniu cmdletu można wprowadzić wartości parametrów, aby określić co, kiedy, gdzie i jak ma zostać wykonane zadanie.
Na przykład Get-Process pobiera listę wszystkich aktywnych procesów w systemie operacyjnym:
A co, jeśli chcemy uzyskać tylko informacje o konkretnym procesie? Można to zrobić przy użyciu parametrów. Przykładowo, aby wyświetlić informacje o wszystkich procesach Slack, można użyć parametru Name w cmdlecie Get-Process:
Get-Process -Name Slack
W wyniku zostaną wyświetlone tylko procesy o nazwie „slack”:
Niektóre parametry są „pozycyjne”, co oznacza, że ich nazwa nie jest konieczna. W tym przypadku Get-Process -Name Slack i Get-Process Slack mają identyczne działanie.
Każdy cmdlet akceptuje różne parametry. Aby sprawdzić listę dostępnych parametrów, należy użyć polecenia Get-Help, a następnie przejść do sekcji SKŁADNIA.
Get-Help Get-Process
Wyświetli się lista wszystkich możliwych sposobów uruchomienia danego cmdletu:
W tym przykładzie, cmdlet Get-Process akceptuje parametry takie jak Name (nazwa), Id (identyfikator), ComputerName (nazwa komputera), Module (moduł), FileVersionInfo (informacje o wersji pliku) oraz inne standardowe parametry. Poniższa tabela wyjaśnia znaczenie symboli:
Symbol | Nazwa | Znaczenie |
---|---|---|
Pusty | Parametr nie przyjmuje danych wejściowych | |
– | Łącznik | Oznacza nazwę parametru |
<> | Nawiasy kątowe | Symbol zastępczy dla tekstu |
[] | Nawiasy kwadratowe | Parametr, który może przyjąć jedną lub więcej wartości |
{} | Nawiasy klamrowe | Parametr akceptuje zbiór wartości |
Parametry przyjmujące dane wejściowe wskazują typ danych, które są wymagane, np. ciąg znaków, liczba całkowita, wartość logiczna, data i czas. Na przykład zapis:
Get-Process [[-Name] <string[]>]
Oznacza, że parametr Name akceptuje jedną lub więcej wartości typu string, natomiast zapis:
Get-Process -Id <int[]>
Oznacza, że parametr Id akceptuje jedną lub więcej wartości całkowitych.
W poprzednim przykładzie parametr Name został wykorzystany do zawężenia wyników. Jeśli jednak chcemy jeszcze bardziej precyzyjnie wskazać proces, możemy użyć parametru ID, który przyjmuje liczbę całkowitą, zgodnie ze swoją składnią.
Get-Process -Id 3016
W efekcie powinien zostać wyświetlony tylko jeden proces:
Tworzenie potoku
PowerShell traktuje wszystkie dane jako obiekty. Podczas tworzenia skryptu obiekty te przepływają przez serię cmdletów lub funkcji połączonych symbolem potoku ( | ). Dobór odpowiednich cmdletów i połączenie ich w logiczną sekwencję za pomocą potoku jest kluczowe dla efektywnego działania skryptu.
Załóżmy, że chcemy napisać skrypt, który posortuje i wyświetli pięć plików, które zajmują najwięcej miejsca w danym folderze. Istnieją bardziej złożone sposoby tworzenia takiego skryptu, ale poniższy uproszczony opis jest łatwiejszy do zrozumienia:
Aby zrealizować to w PowerShell, można użyć potoku o następującej strukturze:
Get-ChildItem -Path "C:\Directory" -File | Sort-Object Length -Descending `
| Select-Object -First 5 | Format-Table Name, Length -AutoSize
Zapisywanie potoku jako skryptu PS1
Po utworzeniu działającego potoku, można go zapisać jako plik skryptu z rozszerzeniem PS1, dzięki czemu nie będzie trzeba go wpisywać za każdym razem, gdy będzie potrzebny.
Najprostszym sposobem utworzenia pliku PS1 jest wklejenie skryptu do Notatnika i zapisanie pliku z rozszerzeniem .ps1.
Po utworzeniu pliku PS1 można go uruchomić w PowerShell, wpisując: ./NazwaSkryptu.ps1
Gratulacje! Udało ci się stworzyć swój pierwszy skrypt PowerShell PS1.
PowerShell jest dostępny także na Linux i macOS
PowerShell to jeden z najlepszych języków skryptowych dla początkujących. Choć wcześniej był ograniczony do systemu Windows, zaktualizowana wersja działa teraz również na macOS i wielu dystrybucjach Linux. To sprawia, że PowerShell jest jeszcze bardziej atrakcyjny, ponieważ zdobytą wiedzę można przenieść na inne platformy.
newsblog.pl