Jak tworzyć i używać tablic w programie PowerShell
Zmienne to najprostsza struktura danych w praktycznie każdym języku programowania. Ale szczerze mówiąc, pojedyncza zmienna zazwyczaj nie wystarcza, zwłaszcza w przypadku bardziej złożonych zagadnień. Właśnie tu pojawiają się tablice. Niezależnie od tego, czy chodzi o C++, Pythona, czy PowerShella, tablice są wszędzie, w jakiejś formie. Ale jak właściwie działają tablice w PowerShellu? Jaka jest ich składnia? I, co ważniejsze, jak ich używać, nie tracąc przy tym rozumu? Przyjrzyjmy się temu bliżej.
Tablice programu PowerShell 101
Zasadniczo tablica to po prostu zbiór zmiennych pogrupowanych razem. Zamiast żonglować wieloma pojedynczymi zmiennymi, umieszczasz powiązane dane w jednym kontenerze, a każdy element jest numerowany od zera. To zbawienne rozwiązanie przy jednoczesnym zarządzaniu dużą ilością danych. W programie Windows PowerShell utworzenie tablicy jest proste.
Zmienne zaczynają się od znaku $. Na przykład $prime = 13przechowują tylko liczbę. Ale jeśli chcesz utworzyć tablicę, możesz przypisać wiele wartości rozdzielonych przecinkami: $week = "Monday", "Tuesday", "Wednesday". To całkiem proste. Mimo to niektórzy wolą wyjaśniać wszystko wprost, więc używają nawiasów z symbolem @, jak tutaj:
$week = @("Monday", "Tuesday", "Wednesday")
Jest to szczególnie przydatne, gdy pracujesz z danymi wyjściowymi poleceń lub chcesz uniknąć pomyłki co do tego, czy jest to pojedyncza wartość, czy tablica. A jeśli potrzebujesz zakresu liczb, powiedzmy, od 0 do 9, możesz to zrobić:
$digits = 0..9
Tworzy tablicę cyfr od zera do dziewięciu. Podczas inicjowania pustej tablicy można wykonać następujące czynności:
$values = @()
To Twoja pusta karta, na której możesz później dodawać elementy. A jeśli lubisz zagnieżdżanie, jasne, tablice mogą zawierać inne tablice:
$coordinates = @( (5, 10, 23), (11, 7, 16) )
Tylko uwaga — zagnieżdżanie może szybko stać się mylące, więc używaj go oszczędnie, chyba że masz doświadczenie. Tablice programu PowerShell są na tyle elastyczne, że obsługują mieszane typy danych, ale jeśli chcesz ograniczyć je tylko do określonych typów danych, możesz to zrobić w ten sposób:
[int[]] $numbers = 2, 3, 4, 5
W ten sposób nie wstawisz przypadkowo ciągu znaków w miejsce, gdzie powinna być liczba, co może później powodować problemy. Jeśli nie będziesz ostrożny z typami, często zdarzają się dziwne błędy.
Dostęp do danych tablicowych i ich modyfikacja
Skoro masz już tablicę, jak z niej wyciągnąć dane? Łatwo – indeksem. Pamiętaj, indeksy tablic zaczynają się od zera. Więc jeśli chcesz szósty element, to jest to $numbers[5]. Na przykład:
$var = $numbers[5]
Kopiuje to wartość o indeksie pięć do nowej zmiennej. Chcesz odczytać „Środę” z tablicy o nazwie $days? Po prostu zrób to $days[2]. Uwaga, ze względu na liczenie od zera, pierwszym elementem jest $days[0].
Możesz również zmieniać wartości tablicy w locie. Na przykład, aby ustawić drugi element na zero, wykonaj:
$numbers[1] = 0
Proste. Aby dodać nowe elementy do istniejącej tablicy, wystarczy dodać +=. Na przykład, $names += "Johny"dodaje „Johny” na końcu tablicy $names. Lub, aby dodać wiele elementów jednocześnie: $names += "Charlie", "Liam", "Teresa". Jeśli masz inną tablicę, na przykład, $surnamesmożesz $names += $surnamesje scalić.
Proste przeglądanie tablic
Czasami ręczny dostęp do każdego elementu jest uciążliwy, zwłaszcza jeśli chcesz coś zrobić ze wszystkimi. PowerShell oferuje kilka przydatnych opcji. Tradycyjna pętla for wygląda tak:
for ($i = 0; $i -lt $days. Length; $i++) { $days[$i] }
Ta pętla przejdzie przez każdy element i wykona wszystkie polecenia. Pętla foreach jest jeszcze przyjemniejsza i mniej podatna na błędy:
foreach ($day in $days) { $day }
Poważnie, w niektórych konfiguracjach na początku możesz potrzebować pętli for, ale gdy przyzwyczaisz się do foreach, wszystko będzie działać płynniej.
Kiedy tablice programu PowerShell są przydatne?
Największym problemem w skryptach bez tablic jest chaos zmiennych – mnóstwo unikalnych nazw zmiennych, które łatwo zapomnieć lub pomylić z innymi. Korzystanie z tablic ogranicza wszystkie powiązane dane do jednego, łatwego w zarządzaniu kontenera, redukując liczbę błędów i upraszczając skrypty. Jest to szczególnie istotne w automatyzacji, gdzie wyniki poleceń cmdlet to obiekty, które wymagają gdzieś przechowywania, a tablice idealnie się do tego nadają. Pamiętaj jednak, że jeśli pobierasz dane z polecenia cmdlet, np.obiekty programu PowerShell, możesz je przekazać do tablicy, aby lepiej je obsługiwać.
No i tak, na początku może to być dziwne, ale gdy zaczniesz efektywnie korzystać z tablic, skrypty stają się bardziej przejrzyste i łatwiejsze w obsłudze. Tylko uważaj z typami i indeksami – bo oczywiście PowerShell musi to utrudniać bardziej, niż to konieczne.
Powiązane artykuły
Czy ten artykuł był pomocny?