Zmienne są najbardziej podstawową strukturą danych w każdym typie kodowania. Ale pojedyncze zmienne nie wystarczają do większości celów, zwłaszcza gdy mamy do czynienia z bardziej złożonymi algorytmami.
W tym miejscu pojawiają się tablice. Czy to C++, czy Python, tablice są obecne w każdym języku programowania w jakiejś formie. Ale co z Windows PowerShell? Jak działają tablice PowerShell? Jak ich używasz? Jaka jest ich składnia? Dowiedzmy się.
Spis treści
Tablice PowerShell 101
Mówiąc najprościej, tablica to po prostu uporządkowany zbiór zmiennych. Pomysł polega na wyeliminowaniu kłopotów z śledzeniem dziesiątek nazw przez zwijanie powiązanych zmiennych w zestaw numerowany.
W PowerShell możesz utworzyć zmienną, dodając symbol $ do nazwy zmiennej. Na przykład:
$prime=13
Zmienna może zawierać dowolny typ danych, od liczb po ciągi. Wystarczy użyć podwójnych lub pojedynczych cudzysłowów, aby określić ciąg.
$name=„Levin”
Teraz, aby utworzyć nową tablicę, po prostu przypisz wiele wartości do tej samej zmiennej, oddzielonych przecinkami. Na przykład:
$week=„poniedziałek”, „wtorek”, „środa”, „czwartek”, „piątek”, „sobota”, „niedziela”
Niektórzy ludzie wolą jawnie rzutować zmienną do tablicy, aby uniknąć pomyłek, chociaż nie jest to konieczne. Aby to zrobić, umieść wartości w nawiasach, poprzedzonych symbolem @.
$week=@(„Poniedziałek”, „Wtorek”, „Środa”, „Czwartek”, „Piątek”, „Sobota”, „Niedziela”)
To zwykle przydaje się, gdy próbujesz umieścić dane wyjściowe innych poleceń w tablicy, gdzie nie możesz ręcznie zapisać ich we właściwym formacie.
Tworzenie tablicy
Widzieliśmy już najpopularniejszą metodę tworzenia tablicy. Ale w zależności od sytuacji istnieją inne sposoby, które mogą być bardziej odpowiednie. Na przykład, jeśli chcesz utworzyć tablicę zawierającą zakres liczb, możesz użyć operatora zakresu:
$cyfry=(0..9)
Stworzy to tablicę wszystkich dziesięciu cyfr od zera do dziewięciu. Możesz także zainicjować pustą tablicę, na wypadek gdybyś chciał tylko później przechowywać wartości.
$values =@()
Wiele tablic może nawet być zagnieżdżone w sobie, chociaż ten rodzaj użycia może bardzo szybko stać się mylący.
$coordinates=@(
(5, 10, 23) ,
(11, 7, 16)
)
Domyślnie tablica może przechowywać dowolny typ zmiennej, czy to liczby, ciągi, czy kombinacja obu. Ale możesz jawnie zdefiniować typ, jeśli chcesz ograniczyć umieszczane w nim wartości. Na przykład:
[int[]] $numbers=2,3,4,5
W ten sposób tablica może zawierać tylko liczby całkowite. Próba przypisania do niego innego typu wartości zwróci błąd. 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 do zmiennej, która ma być 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?
Macierze 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 indeksie pięć tablicy $numbers w $ zmienna zmienna. Zauważ, że indeksy tablicy zaczynają liczyć od 0, więc pierwszy element jest dostępny z zerem.
Gdybyśmy mieli to wypisać, na przykład:
„$dni[2 ]”
Dostaniemy środę, a nie wtorek.
Możesz użyć tej samej metody do modyfikacji tych wartości. Na przykład następujące polecenie zmieni drugi element tablicy na zero:
$numbers[1]=0
Możesz również 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”
Ta metoda może być używana do dodawania wielu wpisów naraz, a nawet całych tablic.
$names +=„Charlie, Liam, Teresa”
$names +=$surnames
Metoda rozdzielana przecinkami ma również zastosowanie do dostępu do wielu elementów tablicy. Wprowadzenie tego na przykład powoduje zapisanie pierwszych pięciu elementów $dni w $dni powszednie.
$dni powszednie=$dni[0,1,2,3,4]
Iterowanie po tablicach
Ręczny dostęp do poszczególnych elementów tablicy jest dobry i dobry, ale jeśli chcesz wykonywać działania na całej zawartości tablicy, może to być nużące. Bardziej eleganckim podejściem jest użycie pętli For.
Pętle For mogą systematycznie przechodzić przez wszystkie elementy tablicy, przetwarzając każdą wartość zgodnie z instrukcjami. Oto jak możesz skonstruować taką pętlę:
For ($i=0 ; $i-lt $days.Length ; $i++)
{
$days[$i]
}
Funkcja array.Length zwraca rozmiar tablicy, czyli zasadniczo liczbę jej elementów. Można to podłączyć do parametru wyrażenia testowego pętli For, aby kompleksowo wykonać iterację wszystkich elementów.
Pętla Foreach i pętla obiektu Foreach mogą zrobić to samo z jeszcze szczuplejszym skryptem PowerShell.
Foreach ($dzień w $dni)
{
$dzień
}
To oszczędza wysiłek określenia rozmiaru tablicy, pozostawiając szczegóły do obsłużenia przez PowerShell.
Kiedy należy używać tablic PowerShell
Największym źródłem błędów w złożonym skrypcie są niepoprawne odwołania 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 intensywne używanie tablic. Wszystkie zmienne powiązane w jakiś sposób można przypisać do pojedynczej tablicy i uzyskać do nich dostęp za pośrednictwem ich numerów indeksów.
Głównym przypadkiem użycia Microsoft PowerShell jest automatyzacja, a tablice odgrywają w tym kluczową rolę. Obiekty zwracane przez polecenia cmdlet programu PowerShell można przechowywać w tablicach i powtarzać. Pozwala to na automatyczne wykonywanie kolejnych zadań, co znacznie upraszcza administrowanie systemem.