Zmienne i tablice PowerShell

0 Comments

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

  • Ustaw zmienną
  • Pobierz zmienną
  • Drukuj zmienną
  • Wyczyść zmienną
  • Usuń zmienną
    • 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.

    Jeff jest dyrektorem ds. inżynierii rozwiązań globalnych w Netwrix. Jest wieloletnim blogerem Netwrix, prelegentem i prezenterem. Na blogu Netwrix Jeff dzieli się życiowymi hackami, poradami i sztuczkami, które mogą znacznie poprawić zarządzanie systemem.


    Dodaj komentarz

    Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *