Zmienne są najbardziej podstawową strukturą danych w dowolny rodzaj kodowania. Jednak pojedyncze zmienne nie wystarczą do większości celów, szczególnie w przypadku bardziej złożonych algorytmów.
W tym miejscu pojawiają się tablice. Niezależnie od tego, czy jest to C++, czy Pyton, tablice występują w jakiejś formie w każdym języku programowania. Ale co z Windows PowerShell? Jak działają tablice PowerShell? Jak z nich korzystasz? Jaka jest ich składnia? Przekonajmy się.
Tablice PowerShell 101
Mówiąc najprościej, tablica to po prostu uporządkowany zbiór zmiennych. Pomysł polega na wyeliminowaniu kłopotów związanych ze śledzeniem dziesiątek nazw poprzez zwijanie powiązanych zmiennych w zestaw numerowany.
W programie PowerShell możesz utworzyć zmienną, dodając symbol $ do nazwy zmiennej. Na przykład:
$pierwsza = 13
Zmienna może zawierać dowolny typ danych, od liczb po ciągi znaków. Aby określić ciąg znaków, wystarczy użyć podwójnych lub pojedynczych cudzysłowów.
$name = „Levin”
Teraz, aby utworzyć nową tablicę, po prostu przypisz wiele wartości do tej samej zmiennej, oddzielając je przecinkami. W ten sposób:
$tydzień = „poniedziałek”, „wtorek”, „środa”, „czwartek”, „piątek”, „sobota”, „niedziela”
Niektóre osoby wolą jawnie rzutować zmienną na tablicę, aby uniknąć nieporozumień, chociaż nie jest to konieczne. Aby to zrobić, umieść wartości w nawiasach poprzedzonych symbolem @.
$tydzień = @(„poniedziałek”, „wtorek”, „środa”, „czwartek”, „piątek”, „sobota”, „niedziela”)
Zazwyczaj przydaje się to, gdy próbujesz umieścić dane wyjściowe innych poleceń w tablicy, gdzie nie można ręcznie zapisać ich we właściwym formacie.
Tworzenie tablicy
Widzieliśmy już najpopularniejszą metodę tworzenia tablicy. Jednak w zależności od sytuacji istnieją inne, bardziej odpowiednie sposoby. Na przykład, jeśli chcesz utworzyć tablicę zawierającą zakres liczb, możesz użyć operatora zakresu:
$cyfry = (0..9)
Spowoduje to utworzenie tablicy składającej się ze wszystkich dziesięciu cyfr od zera do dziewięciu. Możesz także zainicjować pustą tablicę, na wypadek gdybyś później potrzebował miejsca do przechowywania wartości..
$wartości = @()
Wiele tablic można nawet zagnieździć w sobie, chociaż tego typu użycie może bardzo szybko spowodować zamieszanie.
Współrzędne $ = @(
(5, 10, 23),
(11, 7, 16)
)
Domyślnie tablica może przechowywać zmienne dowolnego typu, czy to liczby, ciągi znaków, czy też kombinację obu. Możesz jednak jawnie zdefiniować typ, jeśli chcesz ograniczyć umieszczane w nim wartości. Na przykład:
[int[]] $liczby = 2,3,4,5
W ten sposób tablica może zawierać tylko liczby całkowite. Próba przypisania do niego wartości innego typu spowoduje zwrócenie błędu. Może to być przydatne, aby zapobiec prostym błędom w przypadku tablic pracujących wyłącznie z wartościami liczbowymi, ponieważ wprowadzenie ciągu znaków do zmiennej, która będzie używana w obliczeniach, spowoduje problemy.
Dostęp do tablic
Do tej pory widzieliśmy wiele metod tworzenia tablic zawierających różne typy danych. Ale jak uzyskać dostęp do tych danych?
Tablice PowerShell używają tego samego formatu, co inne języki programowania. Dostęp do każdej zmiennej tablicowej można uzyskać poprzez jej numer indeksu. Na przykład:
$var = $numbers[5]
Spowoduje to skopiowanie wartości przechowywanej w piątym indeksie tablicy $numbersw zmiennej $var. Należy pamiętać, że indeksy tablicy zaczynają się liczyć od 0, więc dostęp do pierwszego elementu uzyskuje się z zerem.
Gdybyśmy wypisali to na przykład:
„$dni[2]”
Dostaniemy środę, a nie wtorek.
Możesz użyć tej samej metody do zmodyfikowania tych wartości. Na przykład następujące polecenie zmieni drugi element tablicy na zero:
$liczby[1] = 0
Możesz także dodać więcej elementów do istniejącej tablicy, zamiast zmieniać wartości bieżących wpisów, po prostu dodając je jak wyrażenie arytmetyczne.
$names += „Johny”
Tej metody można również użyć do dodania wielu wpisów na raz, a nawet całych tablic.
$names += „Charlie, Liam, Teresa”
$imiona += $nazwiska
Metoda rozdzielana przecinkami obowiązuje również w przypadku dostępu do wielu elementów tablicy. Na przykład wpisanie tego powoduje zapisanie pierwszych pięciu elementów $daysw $weekdays..
$dni tygodnia = $dni[0,1,2,3,4]
Iteracja po tablicach
Ręczny dostęp do poszczególnych elementów tablicy jest dobrym pomysłem, ale jeśli chcesz wykonać akcje na całej zawartości tablicy, może to być uciążliwe. Bardziej eleganckim podejściem jest użycie pętli For.
Pętle For mogą systematycznie przeglądać wszystkie elementy tablicy, przetwarzając każdą wartość zgodnie z instrukcjami. Oto jak możesz zbudować taką pętlę:
For ($i = 0 ; $i -lt $days.Length ; $i++)
{
$days[$i]
Funkcja array.Length zwraca rozmiar tablicy, czyli w zasadzie liczbę jej elementów. Można to podłączyć do parametru wyrażenia testowego pętli For, aby kompleksowo wykonać iterację po wszystkich elementach.
Pętla Foreach i pętla obiektu Foreach mogą zrobić to samo przy jeszcze uproszczonym skrypcie PowerShell.
Foreach ($dzień w $dni)
{
$day
Oszczędza to wysiłku związanego z określaniem rozmiaru tablicy, pozostawiając szczegóły do obsługi programu PowerShell.
Kiedy należy używać tablic PowerShell
Największym źródłem błędów w złożonym skrypcie są nieprawidłowe odniesienia do zmiennych. Dzieje się tak ze względu na obecność dużej liczby zmiennych o unikalnych nazwach, co utrudnia zapamiętanie ich przeznaczenia.
Najprostszym rozwiązaniem tego problemu jest szerokie wykorzystanie tablic. Wszystkie zmienne powiązane w jakiś sposób można przypisać do pojedynczej tablicy i uzyskać do nich dostęp poprzez ich numery indeksów.
Microsoft PowerShell głównym przypadkiem użycia jest automatyzacja, a tablice odgrywają w tym kluczową rolę. Obiekty zwracane przez polecenia cmdlet programu PowerShell można przechowywać w tablicach i po nich iterować. Umożliwia to automatyczne wykonywanie kolejnych zadań, co znacznie upraszcza administrację systemem.
.