Zmienne i tablice PowerShell
w poprzednim artykule, nazwanym PowerShell Scripting Tutorial for Beginners, zbadaliśmy, jak używać konsoli PowerShell do wykonywania skryptów i dowiedzieliśmy się, czym są cmdlety, jak uzyskać ich właściwości i jak używać rur do przekazywania danych z jednego cmdleta do drugiego.
w tym artykule przejdziemy do zmiennych i tablic, w tym do tego, czym są i jak możemy je tworzyć, usuwać i zmieniać.,i>lista zmiennych
- Tablice PowerShell
- lista tablic
- indeks tablic wielowymiarowych
- przykłady tablic PowerShell
- Sortuj tablicę
- Dodaj do tablicy
- długość tablicy
- Usuń element z tablicy
- tablica zawiera
- Wyczyść tablicę
- wydrukuj tablicę
- pętla przez tablicę
zmienne PowerShell
zmienna jest jednostką pamięci, w której przechowywane są wartości., Zmienna w PowerShell zaczyna się od ” $ ” (znak dolara), a jej nazwa może zawierać dowolne litery, cyfry i podkreślenia. Aby przypisać wartość do zmiennej, używamy operatora”=”. Aby wyświetlić wartość zmiennej, po prostu wprowadź zmienną.,
jeśli dodasz liczbę do łańcucha, liczba automatycznie staje się ciągiem:
$var1 = "Netwrix"$var2 = 2018$var3 = $var1 + $var2$var3
typy zmiennych
typ zmiennej PowerShell jest ustawiany automatycznie na podstawie na wartości można przypisać do niej, ale można również przypisać typ ręcznie:
$var1 = "Netwrix"
aby dowiedzieć się, jakiego typu jest zmienna, używamy parametru „GetType ()”:
$var1 = "Netwrix"$var1.GetType().FullName
jak widzimy, nasza zmienna $var1 ma „system.,String ” type.
oto opisy wszystkich typów zmiennych PowerShell:
prawdopodobnie już zrozumiałeś, że możesz do zmiennej napisać nie tylko jakąś określoną wartość i zauważyłeś system klas.Obiekt w tabeli. Do tej zmiennej można zapisać wyjście dowolnego cmdleta.
zakres zmiennej
zakres zmiennej w PowerShell może być lokalny lub globalny. Domyślnie zmienna ma zasięg lokalny., Zmienna jest ograniczona przez jej bieżący zakres; na przykład zmienna lokalna może być dostępna w bieżącej funkcji lub skrypcie, podczas gdy zmienna globalna jest aktywna w całej bieżącej sesji PowerShell. Aby określić zmienną globalną, użyj formatu $Global: variable = value, jak pokazano w następującym poleceniu:
$Global:var4 = 12
przykłady zmiennych PowerShell
lista zmiennych
aby wyświetlić listę wszystkich dostępnych zmiennych, uruchom polecenie ls variable:*., Oto przykład wyjścia:
Ustaw zmienną
możesz utworzyć zmienną po prostu przypisując jej wartość. Na przykład polecenie $var4 = „variableexample” tworzy zmienną o nazwie $var4 i przypisuje jej wartość łańcuchową. Podwójne cudzysłowy (” „) wskazują, że do zmiennej jest przypisana wartość łańcuchowa.
Get variable
jest to bardzo podobne do polecenia list variable, wystarczy użyć innego cmdleta:
Get-Variable | Out-String
Print variable
możesz wypisać zmienną a .txt,plik csv lub HTML.
aby napisać do a .,plik txt, użyj polecenia Out-File:
$var5 = "Hello World!"$var5 | Out-File C:\scripts\Hello_World.txt
aby wyeksportować dane do a .,”d2d13912ee”>
aby zapisać plik HTML, użyj polecenia ConvertTo-Html:
$var6 = Get-Process$var6 | ConvertTo-Html -Property Name, Path > C:\scripts\processes.html
aby odczytać wyeksportowany plik, używamy cmdletu Get-Content:
Get-Content C:\scripts\processes.csv
Wyczyść zmienną
aby wyczyścić zawartość zmiennej, użyj polecenia Usuń zmienną:
Clear-Variable -name var6 #without $
Usuń zmienną
aby całkowicie usunąć zmienną, użyj polecenia Usuń zmienną cmdlet:
Remove-Variable -name var6 #without $
tablice PowerShell
tablica jest typem zmiennej., Jest to zbiór komponentów (elementów tablicy) ułożonych w określonej kolejności. Elementy tablicy są ponumerowane kolejno, A dostęp do elementu odbywa się za pomocą jego numeru indeksu.
podczas tworzenia tablic należy pamiętać o domyślnym zachowaniu PowerShell. Jeśli utworzysz tablicę z wieloma elementami, PowerShell utworzy tablicę zgodnie z twoim zamiarem. Na przykład, umieść kilka liczb w tablicy, a następnie sprawdź typ danych zmiennej:
$array1 = 1, 2, 3$array1.GetType()
Jak widać, w tym przypadku PowerShell stworzył tablicę (System.Array).,
Jeśli jednak umieścisz tylko jedną wartość w zmiennej, PowerShell nie utworzy tablicy:
$array1 = 1$array1.GetType()
oczywiście nie zawsze możesz z góry określić, ile obiektów zostanie odebranych w wyniku wykonania danego polecenia, więc musisz mieć kod, który zawsze będzie traktował wynik jako tablicę.
można to zrobić na wiele sposobów. Na przykład można użyć operatora”,”. Jeśli przecinek jest używany jako operator binarny, wtedy tworzony jest zwykły Operator; jeśli jest używany jako operator jednoargumentowy, tablica ma tylko jeden element., Na przykład, oto jak możemy uzyskać tablicę składającą się z jednego elementu:
$array1 = ,1$array1.GetType()
Alternatywnie, możesz jawnie określić typ danych dla zmiennej:
]$array1 = 1$array1.GetType()
wreszcie, można również utworzyć tablicę za pomocą operatora podekspresji „@”, który tworzy tablicę, nawet jeśli nie podano żadnych obiektów. Bardzo wygodne jest inicjowanie zmiennej jako tablicy, a następnie dodawanie do niej obiektów bez martwienia się o ich liczbę.,
$array3 = @()$array3.GetType()
zauważ, że każdy element tablicy ma swój własny typ danych, a obiekt type umożliwia dodanie dowolnych wartości do tablicy. W razie potrzeby można ograniczyć składowe tablicy do określonego typu danych — wtedy tworzy się „typowaną tablicę”., Na przykład, można określić, że elementy tablicy muszą być wartościami całkowitymi:
]$array1 = 1$array1.GetType()
i tak definiujemy procesy systemowe jako członków tablicy:
]$array1 = Get-Process$array1.GetType()
lista tablic
Jeśli Modyfikuj lub przeszukiwaj tablicę często, możesz użyć klasy ArrayList, która umożliwia łatwe dodawanie, usuwanie i wyszukiwanie elementów w niej:
$array3 = New-Object System.Collections.ArrayList
indeks tablicy
indeks w tablicy jest wartością, zazwyczaj liczbową liczbą całkowitą używaną do identyfikacji i odwoływania się do elementu tablicy., Indeksy tablic zaczynają się od zera lub Jedynki, w zależności od języka programowania. Macierze Windows PowerShell są oparte na zero, więc aby odnieść się do pierwszego elementu tablicy $var3 („element zero”), należy napisać $var3 .
$var3 = "first", "second", "third"
tablice wielowymiarowe
tablice wielowymiarowe są zmiennymi, które mogą być używane do przechowywania informacji w tabeli bez konieczności zapisywania ich do rzeczywistej bazy danych. Wygląda jak tabela hash, ale może przechowywać różne typy informacji, takie jak ciągi znaków i liczby całkowite., W rzeczywistości można sobie wyobrazić wielowymiarową tablicę jako tabelę z kolumnami i wierszami, w której każda komórka ma swój własny indeks wewnątrz środowiska PowerShell.
przykłady macierzy PowerShell
Sort array
jeśli tablica zawiera tylko jeden typ danych, możesz sortować wartości za pomocą metody Sort:
$array3 | Sort
aby sortować tablicę z więcej niż jednym typem danych, musisz użyć obiektu Sort-Object cmdlet.,
Dodaj do tablicy
najpierw utwórzmy tablicę:
$array5 = "one", "two", "three", "four", "five"$array5.gettype()
aby łatwo zmodyfikować tablicę, musimy dodać ją do kolekcji arraylist:
iv id=”02a44b8b12″
jak widzisz, basetype się zmienił i możemy łatwo zmodyfikować naszą tablicę:
$ArrayList1.Add("six")$ArrayList1.Remove("three")$ArrayList1
długość tablicy
aby zwrócić liczbę elementów w tablicy, użyj .,parametr długości:
$array6 = 1,2,3,4,5,6echo $array6.Length
Usuń element z tablicy
aby usunąć element, użyj .Usuń polecenie., Ponownie, lepiej jest użyć arraylist:
$ArrayList1 = $array5$ArrayList1.GetType()$ArrayList1.Remove("three")$ArrayList1
tablica zawiera
Jeśli chcesz sprawdzić, czy któryś z elementów tablicy zawiera określoną wartość, użyj metody Contains:
$array7 = 1,2,5,8,3,4,5$array7.Contains(2)$array7.Contains(12)
Wyczyść tablicę
mimo że większość operacji tablicy w PowerShell jest stosunkowo łatwa do wykonania, nie ma prostego sposobu na usunięcie tablicy., Najprostszym sposobem na pozbycie się całej tablicy jest przypisanie do niej zmiennej $null:
$array7 = $null$array7
aby sprawdzić, czy nasza tablica ma wartość null, uruchom następujący skrypt:
$array7 -eq $null
w PowerShell, jeśli zmienna jest NULL, nie można zastosować żadnych metod do niej.
Print array
aby wydrukować całą tablicę, możemy użyć tych samych metod opisanych do drukowania zmiennych.
aby napisać do a .plik txt, użyj polecenia Out-File:
$var5 | Out-File C:\scripts\array.txt
aby wyeksportować do a .,plik csv, użyj polecenia Export-Csv:
$var6 | Export-Csv -Path C:\scripts\array.csv
i aby zapisać do pliku HTML, użyj polecenia ConvertTo-Html:
$var6 | ConvertTo-Html > C:\scripts\processes.html
Pętla przez tablicę
aby obsłużyć każdy element tablicy jeden po drugim, musimy utworzyć pętlę za pomocą operatora foreach. Na przykład, jeśli zadeklarujemy tablicę łańcuchów i chcemy policzyć długość każdego słowa w tablicy, powinniśmy uruchomić następujący skrypt:
$array8 = @("Earth","Mercury","Venus","Jupiter","Saturn","Mars", "Neptune", "Pluto") foreach ($array in $array8) { "$array = " + $array.length }
w tym artykule dowiedzieliśmy się o zmiennych i ich typach., Następnie szczegółowo zbadaliśmy jeden typ zmiennej-tablicę-i nauczyliśmy się grać z nią. Dzięki tym informacjom możesz jeszcze głębiej zagłębić się w PowerShell.