PowerShell Proměnné a Pole
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
- Pole se Seznamem
- Array Index
- Vícerozměrných Polí
- 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.