Główna » jak » Nauka Geek PowerShell Zmienne, wejście i wyjście

    Nauka Geek PowerShell Zmienne, wejście i wyjście

    Kiedy odejdziemy od zwykłego uruchamiania poleceń i przechodzenia do pisania pełnych skryptów, będziesz potrzebował tymczasowego miejsca do przechowywania danych. Tutaj pojawiają się zmienne.

    Zapoznaj się z poprzednimi artykułami z serii:

    • Dowiedz się, jak zautomatyzować system Windows za pomocą programu PowerShell
    • Nauka korzystania z poleceń cmdlet w PowerShell
    • Nauka korzystania z obiektów w PowerShell
    • Nauka formatowania, filtrowania i porównywania w PowerShell
    • Naucz się korzystać z Remotingu w PowerShell
    • Korzystanie z PowerShell w celu uzyskania informacji o komputerze
    • Praca z kolekcjami w PowerShell

    I pozostańcie czujni przez resztę serii przez cały tydzień.

    Zmienne

    Większość języków programowania pozwala na użycie zmiennych, które są po prostu pojemnikami zawierającymi wartości. W PowerShellu mamy również zmienne i są one naprawdę łatwe w użyciu. Oto jak utworzyć zmienną o nazwie "FirstName" i nadać jej wartość "Taylor".

    $ FirstName = "Taylor"

    Pierwszą rzeczą, o którą większość ludzi pyta, jest to, dlaczego umieszczamy znak dolara przed nazwą zmiennej, a to właściwie bardzo dobre pytanie. Naprawdę, znak dolara jest tylko małą wskazówką dla powłoki, do której chcemy uzyskać dostęp do zawartości zmiennej (myślimy o tym, co znajduje się w pojemniku), a nie do samego kontenera. W PowerShell nazwy zmiennych nie zawierają znaku dolara, co oznacza, że ​​w powyższym przykładzie nazwa zmiennej jest w rzeczywistości "FirstName".

    W PowerShell możesz zobaczyć wszystkie zmienne, które utworzyłeś w zmiennej PSDrive.

    zmienna gci:

    Oznacza to, że możesz również usunąć zmienną z powłoki w dowolnym momencie:

    Zmienna Remove-Item: \ FirstName

    Zmienne nie muszą również zawierać jednego obiektu; możesz równie łatwo przechowywać wiele obiektów w zmiennej. Na przykład, jeśli chcesz zapisać listę uruchomionych procesów w zmiennej, możesz po prostu przypisać jej wynik działania Get-Process.

    $ Proc = Get-Process

    Sztuką do zrozumienia tego jest pamiętanie, że prawa strona znaku równości jest zawsze oceniana jako pierwsza. Oznacza to, że możesz mieć cały rurociąg po prawej stronie, jeśli chcesz.

    $ CPUHogs = Get-Process | Sortuj CPU -Descending | wybierz -First 3

    Zmienna CPUHogs będzie teraz zawierała trzy uruchomione procesy z największą liczbą procesorów.

    Kiedy masz zmienną trzymającą kolekcję obiektów, musisz wiedzieć o kilku rzeczach. Na przykład wywołanie metody na zmiennej spowoduje jej wywołanie w każdym obiekcie w kolekcji.

    $ CPUHogs.Kill ()

    Który zabije wszystkie trzy procesy w kolekcji. Jeśli chcesz uzyskać dostęp do pojedynczego obiektu w zmiennej, musisz traktować go jak tablicę.

    $ CPUHogs [0]

    Wykonanie tego da ci pierwszy przedmiot w kolekcji.

    Nie daj się złapać!

    Zmienne w PowerShell są słabo wpisywane domyślnie, co oznacza, że ​​mogą zawierać jakiekolwiek dane, to wydaje się przyciągać nowych graczy do PowerShell przez cały czas!

    $ a = 10

    $ b = '20'

    Mamy więc dwie zmienne, jedna zawiera ciąg, a druga jest liczbą całkowitą. Co się stanie, jeśli je dodasz? To zależy od tego, w jakiej kolejności je dodasz.

    $ a + $ b = 30

    Podczas

    $ b + $ a = 2010

    W pierwszym przykładzie pierwszy operand jest liczbą całkowitą, $ a, więc PowerShell uważa, że ​​próbujesz wykonać matematykę i dlatego próbuje przekonwertować dowolne inne operandy na liczby całkowite. Jednak w drugim przykładzie pierwszy operand jest ciągiem, więc PowerShell po prostu konwertuje pozostałe operandy na łańcuchy i łączy je. Bardziej zaawansowani skrypciacze zapobiegają tego rodzaju problemom, przesyłając zmienną do oczekiwanego typu.

    [int] $ Liczba = 5
    [int] $ Number = '5'

    Powyższe spowoduje, że zmienna Number zawiera obiekt liczby całkowitej o wartości 5.

    Wejście i wyjście

    Ponieważ program PowerShell ma za zadanie zautomatyzować operacje, należy unikać monitowania użytkowników o informacje w miarę możliwości. Powiedziawszy to, zdarzają się czasy, w których nie można tego uniknąć, a dla tych czasów mamy cmdlet Read-Host. Używanie go jest naprawdę proste:

    $ FirstName = Read-Host -Prompt "Wpisz swoje imię"

    Cokolwiek wprowadzisz, zostanie zapisane w zmiennej.

    Zapisywanie danych wyjściowych jest równie proste dzięki poleceniu cmdlet Write-Output.

    Write-Output "How-To Geek Rocks!"

    Dołącz do nas jutro, gdzie łączymy wszystko, czego się nauczyliśmy razem!