PowerShell variabelen en Arrays

0 Comments

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

  • variabele Instellen
  • Get variabele
  • het Afdrukken van variabele
  • Heldere variabele
  • Verwijderen variabele
  • PowerShell-Arrays
    • Array Lijst
    • Array-Index
    • Multidimensionale Arrays
  • PowerShell Array Voorbeelden
    • 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.

    Jeff is directeur Global Solutions Engineering bij Netwrix. Hij is een lange tijd Netwrix blogger, spreker en presentator. In de NetWrix blog, Jeff deelt lifehacks, tips en trucs die drastisch kunnen verbeteren van uw systeembeheer ervaring.


    Geef een reactie

    Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *