PowerShell Proměnné a Pole

0 Comments

V předchozím článku, s názvem PowerShell Scripting Tutorial pro Začátečníky, jsme zkoumali, jak použít PowerShell konzoli spouštět skripty a dozvěděl se, co jsou rutiny, jak se dostat jejich vlastnosti a jak používat potrubí k předání dat z jedné rutiny do druhé.

v tomto článku se přesuneme na proměnné a pole, včetně toho, co jsou a jak je můžeme vytvořit, odstranit a změnit.,i>Seznam proměnných

  • Nastavit proměnnou
  • proměnná
  • Tisk proměnné
  • proměnná
  • Odstranit proměnnou
  • PowerShell Pole
    • Pole se Seznamem
    • Array Index
    • Vícerozměrných Polí
  • PowerShell Pole Příklady
    • Seřadit pole
    • Přidat do pole
    • délka Pole
    • Odstranit položky z pole
    • Pole obsahuje
    • pole
    • Print array
    • Smyčku přes pole
  • PowerShell Proměnné

    proměnná je část paměti, ve které jsou hodnoty uloženy., Proměnná v PowerShell začíná “ $ “ (znak dolaru) a její název může obsahovat všechna písmena, čísla a podtržítka. Pro přiřazení hodnoty proměnné použijeme operátor“=“. Chcete-li zobrazit hodnotu proměnné, jednoduše zadejte proměnnou.,

    Pokud přidáte číslo na řetězec, číslo se automaticky stává string:

    $var1 = "Netwrix"$var2 = 2018$var3 = $var1 + $var2$var3

    Typy Proměnných

    PowerShell typ proměnné je nastavena automaticky na základě hodnoty přiřadit k ní, ale můžete také přiřadit typ ručně:

    $var1 = "Netwrix"

    zjistit, jaký typ proměnné, můžeme použít „GetType ()“ parametr:

    $var1 = "Netwrix"$var1.GetType().FullName

    Jak můžeme vidět, naše $var1 proměnná má „Systému.,Řetězec “ typ.

    Zde jsou popisy všech PowerShell proměnné typy:

    pravděpodobně Jste již pochopili, že můžete psát na proměnnou, ne pouze nějaké určité hodnoty a všiml si, třídní Systém.Objekt v tabulce. K této proměnné můžete napsat výstup libovolného cmdletu.

    variabilní rozsah

    variabilní rozsah v PowerShellu může být lokální nebo globální. Ve výchozím nastavení má proměnná místní rozsah., Proměnná je ohraničena svým aktuálním rozsahem; například lokální proměnná může být k dispozici v aktuální funkci nebo skriptu, zatímco globální proměnná je aktivní během aktuální relace PowerShell. K označení globální proměnnou, použijte formát $Globální: proměnná = hodnota, jak ukazuje následující příkaz:

    $Global:var4 = 12

    PowerShell Proměnné Příklady

    Seznam proměnných

    seznam všech aktuálně dostupných proměnných, spuštění je proměnná:* příkaz., Zde je příklad výstupu:

    Nastavit proměnnou

    můžete vytvořit proměnné pouhým přiřazením hodnoty. Například příkaz $var4 = „variableexample“ vytváří proměnnou s názvem $var4 a přiřadí hodnotu řetězce. Dvojité uvozovky ( „“ ) naznačují, že proměnné je přiřazena hodnota řetězce.

    proměnná

    To je velmi podobné do seznamu proměnných příkaz, jen pomocí další rutiny:

    Get-Variable | Out-String

    Tisk proměnné

    můžete výstupní proměnná .txt, .csv nebo HTML soubor.

    pro zápis do a .,txt soubor, použijte příkaz Out-File:

    $var5 = "Hello World!"$var5 | Out-File C:\scripts\Hello_World.txt

    exportovat data do a .,“d2d13912ee“>

    A psát do HTML souboru, použijte ConvertTo-příkaz Html:

    $var6 = Get-Process$var6 | ConvertTo-Html -Property Name, Path > C:\scripts\processes.html

    přečtěte si soubor, který jsme dovezli, jsme se použít Get-Obsah rutinu:

    Get-Content C:\scripts\processes.csv

    proměnná

    Chcete-li vymazat obsah proměnné, používat Jasné-Variabilní rutiny:

    Clear-Variable -name var6 #without $

    Odstranit proměnnou

    Chcete-li zcela odstranit proměnné, použijte Odstranit-Variabilní rutiny:

    Remove-Variable -name var6 #without $

    PowerShell Pole

    pole je typ proměnné., Jedná se o sadu komponent (prvky pole) uspořádaných v určitém pořadí. Prvky pole jsou číslovány postupně a k prvku přistupujete pomocí jeho indexového čísla.

    při vytváření polí si uvědomte výchozí chování PowerShell. Pokud vytvoříte pole s více prvky, PowerShell vytvoří pole, jak máte v úmyslu. Například vložte několik čísel do pole a poté zkontrolujte datový typ proměnné:

    $array1 = 1, 2, 3$array1.GetType()

    jak vidíte, v tomto případě PowerShell vytvořil pole (systém.Pole).,

    Nicméně, pokud dáte jen jednu hodnotu v proměnné, pak PowerShell nebude vytvářet pole:

    $array1 = 1$array1.GetType()

    samozřejmě, nelze vždy říci předem, kolik objektů bude přijata jako výsledek provedení konkrétní příkaz, takže musíte mít kód, který bude vždy zacházet výsledek jako pole.

    můžete to udělat mnoha způsoby. Můžete například použít operátor“,“. Pokud se čárka používá se jako binární operátor, pak normální pole je vytvořen; pokud je použit jako unární operátor, pole má jen jeden prvek., Například, tady je, jak můžeme získat řadu skládající se z jednoho prvku,

    $array1 = ,1$array1.GetType()

    Případně můžete explicitně určit typ dat pro proměnnou:

    ]$array1 = 1$array1.GetType()

    a Konečně, můžete také vytvořit pole pomocí seskupení provozovatel „@“, který tvoří pole, i když ne objekty vůbec, jsou uvedeny. Je velmi výhodné inicializovat proměnnou jako pole a poté do ní přidávat objekty bez obav o jejich počet.,

    $array3 = @()$array3.GetType()

    Všimněte si, že každý prvek pole má svůj datový typ a typ objekt umožňuje přidat všechny hodnoty do pole. V případě potřeby můžete členy pole omezit na konkrétní datový typ-pak vytvoříte „zadané pole“., Například, můžete určit, že prvky pole musí být celé číslo hodnoty:

    ]$array1 = 1$array1.GetType()

    A tak jsme se definovat systémové procesy jako prvky pole:

    ]$array1 = Get-Process$array1.GetType()

    Pole se Seznamem

    Pokud budete upravovat nebo vyhledávací pole často, můžete použít ArrayList třídy, která je navržena tak, aby snadno přidat, odstranit, a hledat pro položky v tom:

    $array3 = New-Object System.Collections.ArrayList

    Array Index

    index v poli je hodnota, obvykle číselné celé číslo používané k identifikaci a referenční prvek matice., Indexy polí začínají buď na nule, nebo na jednom, v závislosti na programovacím jazyce. Pole Windows PowerShell jsou zero-based, takže odkazovat na první prvek pole $var3 („element zero“), byste napsat $var3 .

    $var3 = "first", "second", "third"

    Vícerozměrných Polí

    Vícerozměrné pole jsou proměnné, které mohou být použity k ukládání informací v tabulce, aniž byste museli psát na skutečné databáze. Vypadá to jako hash tabulka, ale může ukládat různé typy informací, jako jsou řetězce a celá čísla., Ve skutečnosti si můžete představit vícerozměrné pole jako tabulku se sloupci a řádky, kde každá buňka má svůj vlastní index uvnitř prostředí PowerShell.

    PowerShell Řadu Příkladů

    Seřadit pole

    Pokud pole obsahuje pouze jeden typ dat, můžete třídit hodnoty pomocí metody Sort:

    $array3 | Sort

    třídit pole s více než jeden typ dat, musíte použít Sort-Object rutiny.,

    Přidat do pole

    za Prvé, pojďme vytvořit pole:

    $array5 = "one", "two", "three", "four", "five"$array5.gettype()

    snadno upravit naše pole, musíme ji přidat do arraylist, kolekce:

    $ArrayList1 = $array5$ArrayList1.GetType()

    Jak můžete vidět, BaseType změnila a můžeme snadno upravit naše pole nyní:

    $ArrayList1.Add("six")$ArrayList1.Remove("three")$ArrayList1

    délka Pole

    vrátí počet prvků v poli, používat .,parametr délky:

    $array6 = 1,2,3,4,5,6echo $array6.Length

    odebrat položku z pole

    pro odebrání položky použijte .Odebrat příkaz., Opět, to je lepší použít arraylist:

    $ArrayList1 = $array5$ArrayList1.GetType()$ArrayList1.Remove("three")$ArrayList1

    Array obsahuje

    Pokud chcete vidět, pokud některý z prvků v matici obsahuje konkrétní hodnotu, použijte Obsahuje metodu:

    $array7 = 1,2,5,8,3,4,5$array7.Contains(2)$array7.Contains(12)

    Vymazat pole

    I když většina pole operace v prostředí PowerShell jsou relativně snadné dosáhnout, není prostě způsob, jak odstranit pole., Nejjednodušší způsob, jak se zbavit celé pole je přiřadit proměnné $null na to:

    $array7 = $null$array7

    zkontrolujte, zda naše pole je null, spusťte následující skript:

    $array7 -eq $null

    V PowerShell, pokud má proměnná hodnotu null, nemůžete použít libovolné metody.

    print array

    pro tisk celého pole můžeme použít stejné metody popsané pro tisk proměnných.

    pro zápis do a .txt soubor, použijte příkaz Out-File:

    $var5 | Out-File C:\scripts\array.txt

    exportovat do a .,csv soubor, použít Export-Csv příkaz:

    $var6 | Export-Csv -Path C:\scripts\array.csv

    A psát do HTML souboru, použijte ConvertTo-příkaz Html:

    $var6 | ConvertTo-Html > C:\scripts\processes.html

    Smyčku přes pole

    aby bylo možné zvládnout každý prvek v poli jeden po druhém, musíme udělat smyčku pomocí foreach operátora. Například, když jsme se vyhlásit pole řetězců a chcete si spočítat, že délka každého slova v poli, bychom měli spustit následující skript:

    $array8 = @("Earth","Mercury","Venus","Jupiter","Saturn","Mars", "Neptune", "Pluto") foreach ($array in $array8) { "$array = " + $array.length }

    V tomto článku, jsme se dozvěděli o proměnných a jejich typů., Pak jsme podrobně prozkoumali jeden typ proměnné-pole-a naučili jsme se s ním hrát. S těmito informacemi jste připraveni ponořit se do PowerShell ještě hlouběji.

    Jeff je ředitelem Global Solutions Engineering ve společnosti Netwrix. Je dlouholetým blogerem Netwrix, řečníkem a moderátorem. V blogu Netwrix Jeff sdílí lifehacks, tipy a triky, které mohou dramaticky zlepšit vaše zkušenosti se správou systému.


    Napsat komentář

    Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *