PowerShell variabelen en Arrays
In het vorige artikel, genaamd PowerShell Scripting Tutorial for Beginners, hebben we onderzocht hoe de PowerShell console te gebruiken om scripts uit te voeren en geleerd wat cmdlets zijn, hoe hun eigenschappen te krijgen en hoe pipes te gebruiken om gegevens van de ene cmdlet naar de andere door te geven.
in dit artikel gaan we verder met variabelen en arrays, inclusief wat ze zijn en hoe we ze kunnen maken, verwijderen en wijzigen.,ik>variabelen
- Array Lijst
- Array-Index
- Multidimensionale Arrays
- Sorteren array
- Toevoegen aan array
- Array lengte
- item Verwijderen van array
- Array bevat
- Heldere array
- Print array
- Loop door een array
PowerShell Variabelen
een variabele is Een eenheid van het geheugen waarin de waarden worden opgeslagen., Een variabele in PowerShell begint met ” $ ” (dollarteken) en zijn naam kan alle letters, cijfers en underscores bevatten. Om een waarde toe te wijzen aan een variabele, gebruiken we de “=” operator. Om de waarde van een variabele weer te geven, voer je gewoon de variabele in.,
Als u een nummer toevoegen aan een string, het aantal wordt automatisch een string:
$var1 = "Netwrix"$var2 = 2018$var3 = $var1 + $var2$var3
Variabele Types
De PowerShell type van de variabele wordt automatisch ingesteld op basis van de waarde die u toekent aan het, maar je kunt ook toewijzen het type handmatig:
$var1 = "Netwrix"
om uit Te vinden welk type een variabele is, gebruiken we de “GetType ()” – parameter:
$var1 = "Netwrix"$var1.GetType().FullName
Zoals we kunnen zien, onze $var1 variabele heeft het “Systeem.,String ” type.
Hier zijn beschrijvingen van alle PowerShell variabele types:
waarschijnlijk begreep u al dat u niet alleen een bepaalde waarde naar de variabele kunt schrijven en merkte u het klassesysteem op.Object in de tabel. Naar deze variabele kun je de uitvoer van elke cmdlet schrijven.
Variable Scope
Het variable scope in PowerShell kan lokaal of globaal zijn. Standaard heeft een variabele een lokale scope., Een variabele wordt begrensd door zijn huidige scope; bijvoorbeeld, een lokale variabele kan beschikbaar zijn in een huidige functie of script, terwijl een globale variabele actief is gedurende de huidige PowerShell-sessie. Om een globale variabele aan te duiden, gebruik je het formaat $Global: variable = value, zoals geïllustreerd in het volgende commando:
$Global:var4 = 12
PowerShell variabele voorbeelden
lijst variabelen
om alle huidige beschikbare variabelen weer te geven, voer je het commando ls variable:* uit., Hier is een voorbeeld van de uitvoer:
Set variabele
u kunt een variabele maken door er gewoon een waarde aan toe te kennen. Bijvoorbeeld, het commando $var4 = “variableexample” maakt een variabele genaamd $var4 en wijst het een string waarde toe. De dubbele aanhalingstekens ( “” ) geven aan dat een string waarde wordt toegewezen aan de variabele.
variabele
Dit lijkt erg op het commando list variabele, alleen met een andere cmdlet:
Get-Variable | Out-String
variabele
Print kunt u een variabele a uitvoeren .txt, .csv of HTML-bestand.
om naar a te schrijven .,txt-bestand, Gebruik Het Out-File Commando:
$var5 = "Hello World!"$var5 | Out-File C:\scripts\Hello_World.txt
om gegevens naar a te exporteren .,”d2d13912ee”>
En om te schrijven naar een HTML-bestand, gebruikt u de ConvertTo-Html-commando:
$var6 = Get-Process$var6 | ConvertTo-Html -Property Name, Path > C:\scripts\processes.html
om een bestand Te lezen dat we geëxporteerd, we maken gebruik van de Inhoud van de cmdlet:
Get-Content C:\scripts\processes.csv
Duidelijk variabele
Om het wissen van de inhoud van een variabele, het gebruik van de Clear-Variabele cmdlet:
Clear-Variable -name var6 #without $
Verwijderen variabele
Om volledig te verwijderen van een variabele, gebruik de Verwijder-Variabele cmdlet:
Remove-Variable -name var6 #without $
PowerShell-Arrays
Een array is een type van een variabele., Het is een verzameling van componenten (array-elementen) gerangschikt in een bepaalde volgorde. Elementen van de array zijn achtereenvolgens genummerd en u opent een element met behulp van het indexnummer.
bij het maken van arrays, wees je bewust van het standaard PowerShell-gedrag. Als je een array met meerdere elementen maakt, zal PowerShell een array maken, zoals je van plan bent. Zet bijvoorbeeld een paar getallen in een array en controleer dan het gegevenstype van de variabele:
$array1 = 1, 2, 3$array1.GetType()
zoals u kunt zien, heeft PowerShell in dit geval een array (System.Array).,
echter, als u slechts één waarde in een variabele plaatst, dan zal PowerShell geen array aanmaken:
$array1 = 1$array1.GetType()
natuurlijk kunt u niet altijd van tevoren vertellen hoeveel objecten zullen worden ontvangen als gevolg van het uitvoeren van een bepaald commando, dus u moet code hebben die het resultaat altijd als een array zal behandelen.
u kunt dit op vele manieren doen. U kunt bijvoorbeeld de”, ” operator gebruiken. Als een komma wordt gebruikt als een binaire operator, dan wordt een normale array gemaakt; als het wordt gebruikt als een unaire operator, heeft de array slechts één element., Bijvoorbeeld, hier is hoe kunnen we een array bestaande uit één element:
$array1 = ,1$array1.GetType()
u kunt Ook uitdrukkelijk aan te geven dat de gegevens type voor een variabele:
]$array1 = 1$array1.GetType()
tot slot, u kunt ook maak een array met sub-exploitant “@”, die vormen een matrix, zelfs als er geen objecten zijn aangegeven. Het is erg handig om een variabele als een array te initialiseren en er vervolgens objecten aan toe te voegen zonder je zorgen te maken over hun aantal.,
$array3 = @()$array3.GetType()
merk op dat elk element van een array zijn eigen gegevenstype heeft, en met het type object kunt u alle waarden aan de array toevoegen. Indien nodig, kunt u de leden van de array beperken tot een specifiek gegevenstype — dan maak je een “getypte array”., U kunt bijvoorbeeld opgeven dat de array-elementen moeten geheel waarden:
]$array1 = 1$array1.GetType()
En zo definiëren we in systeem verwerkt als matrix leden:
]$array1 = Get-Process$array1.GetType()
Array List
Als u wijzigen of te zoeken in een array vaak, u kunt gebruik maken van de klasse ArrayList, die is ontworpen om u te laten eenvoudig toevoegen, verwijderen en zoeken naar items in het:
$array3 = New-Object System.Collections.ArrayList
Array-Index
Een index in de array is een waarde, meestal een numeriek getal gebruikt voor het identificeren van en verwijzen naar een array-element., Array indexen beginnen bij nul of één, afhankelijk van de programmeertaal. Windows PowerShell arrays zijn gebaseerd op nul, dus om te verwijzen naar het eerste element van de array $var3 (“element zero”), zou je $var3 schrijven .
$var3 = "first", "second", "third"
multidimensionale Arrays
multidimensionale arrays zijn variabelen die kunnen worden gebruikt om informatie in een tabel op te slaan zonder deze naar een echte database te hoeven schrijven. Het ziet eruit als een hash tabel, maar het kan verschillende soorten informatie op te slaan, zoals strings en gehele getallen., In feite kun je je een multidimensionale array voorstellen als een tabel met kolommen en rijen, waarbij elke cel zijn eigen index heeft in een PowerShell-omgeving.
PowerShell Array Examples
Sorteer array
als een array slechts één gegevenstype bevat, kunt u de waarden Sorteren met behulp van de sorteermethode:
$array3 | Sort
om een array met meer dan één gegevenstype te sorteren, moet u de cmdlet Sorteerobject gebruiken.,
Toevoegen aan array
ten Eerste, laten we een array maken:
$array5 = "one", "two", "three", "four", "five"$array5.gettype()
eenvoudig om de draagwijdte van onze array, we moeten toevoegen aan de arraylist collectie:
$ArrayList1 = $array5$ArrayList1.GetType()
Zoals u kunt zien, de BaseType is veranderd en kunnen we gemakkelijk om de draagwijdte van onze matrix nu:
$ArrayList1.Add("six")$ArrayList1.Remove("three")$ArrayList1
Array lengte
om terug Te keren van het aantal elementen in de array, gebruik het .,length parameter:
$array6 = 1,2,3,4,5,6echo $array6.Length
item Uit array verwijderen
om een item te verwijderen, gebruik de .Verwijder Commando., Nogmaals, het is beter om gebruik maken van een arraylist:
$ArrayList1 = $array5$ArrayList1.GetType()$ArrayList1.Remove("three")$ArrayList1
Array bevat
Als u wilt zien of een van de elementen in een array bevat een bepaalde waarde, gebruik de methode Bevat:
$array7 = 1,2,5,8,3,4,5$array7.Contains(2)$array7.Contains(12)
Duidelijk array
hoewel de meeste van de array operations in PowerShell zijn relatief gemakkelijk te bereiken, er is geen eenvoudige manier voor het verwijderen van een array., De makkelijkste manier om van een hele array af te komen is om er de variabele $null aan toe te wijzen:
$array7 = $null$array7
om te controleren of onze array null is, voer je het volgende script uit:
$array7 -eq $null
in PowerShell, als een variabele null is, je kunt er geen methoden op Toepassen.
Print array
om een hele array af te drukken, kunnen we dezelfde methoden gebruiken als beschreven voor het afdrukken van variabelen.
om naar a te schrijven .txt-bestand, Gebruik Het Out-File Commando:
$var5 | Out-File C:\scripts\array.txt
om naar a te exporteren .,csv-bestand, gebruik het Export-Csv Commando:
$var6 | Export-Csv -Path C:\scripts\array.csv
en om naar een HTML-bestand te schrijven, gebruik het ConvertTo-Html Commando:
$var6 | ConvertTo-Html > C:\scripts\processes.html
Loop door een array
om elk element in een array een voor een te behandelen, moeten we een loop maken met behulp van de foreach operator. Als we bijvoorbeeld een string array declareren en de lengte van elk woord in de array willen tellen, moeten we het volgende script uitvoeren:
$array8 = @("Earth","Mercury","Venus","Jupiter","Saturn","Mars", "Neptune", "Pluto") foreach ($array in $array8) { "$array = " + $array.length }
In dit artikel hebben we geleerd over variabelen en hun typen., Vervolgens onderzochten we één variabel type — de array— in detail en leerden we ermee te spelen. Met deze informatie ben je klaar om nog dieper in PowerShell te duiken.