27Jul
Naarmate we verder gaan met het uitvoeren van opdrachten en het schrijven van volledig geschreven scripts, hebt u een tijdelijke plaats nodig om gegevens op te slaan. Dit is waar variabelen binnenkomen.
Lees de vorige artikelen in de reeks:
- Leer hoe u Windows kunt automatiseren met PowerShell
- Leren gebruik van cmdlets in PowerShell
- Leren hoe u objecten in PowerShell kunt gebruiken
- Leeropmaak, filteren en vergelijken inPowerShell
- Leer hoe u Remoting in PowerShell gebruikt
- PowerShell gebruiken om computerinformatie te verkrijgen
- Werken met collecties in PowerShell
Blijf de rest van de serie de hele week op de hoogte.
Variabelen
In de meeste programmeertalen kunnen variabelen worden gebruikt, dit zijn eenvoudig containers met waarden. In PowerShell hebben we ook variabelen en ze zijn heel gemakkelijk te gebruiken. Hier ziet u hoe u een variabele met de naam "FirstName" maakt en deze de waarde "Taylor" geeft.
$ FirstName = "Taylor"
Het eerste wat de meeste mensen lijken te vragen is waarom we een dollarteken plaatsen voor de naam van de variabelen, en dat is eigenlijk een heel goede vraag. Echt, het dollarteken is slechts een kleine hint naar de shell waarin we toegang willen tot de inhoud van de variabele( denk aan wat zich in de container bevindt) en niet aan de container zelf. In PowerShell bevatten variabelenamen niet het dollarteken, wat betekent dat in het bovenstaande voorbeeld de naam van de variabelen eigenlijk "Voornaam" is.
In PowerShell ziet u alle variabelen die u hebt gemaakt in de variabele PSDrive.
gci variabele:
Dat betekent dat u ook op elk moment een variabele uit de shell kunt verwijderen:
Remove-Item Variable: \ FirstName
Variabelen hoeven ook geen enkel object te bevatten;je kunt net zo gemakkelijk meerdere objecten in een variabele opslaan. Als u bijvoorbeeld een lijst met actieve processen in een variabele wilt opslaan, kunt u deze gewoon toewijzen aan de uitvoer van Get-Process.
$ Proc = Get-Process
De truc om dit te begrijpen is om te onthouden dat de rechterkant van het gelijkteken altijd eerst wordt geëvalueerd. Dit betekent dat u een volledige pijplijn aan de rechterkant kunt hebben als u dat wilt.
$ CPUHogs = Get-Process |Sorteer CPU - Aflopend |selecteer - First 3
De CPUHogs-variabele zal nu de drie lopende processen bevatten die de meeste CPU gebruiken.
Als u een variabele met een verzameling objecten hebt, zijn er enkele dingen waar u zich bewust van moet zijn. Als u bijvoorbeeld een methode op de variabele aanroept, wordt deze aangeroepen voor elk object in de verzameling.
$ CPUHogs. Kill()
Welke alle drie de processen in de verzameling zou doden. Als u één object in de variabele wilt gebruiken, moet u het als een array behandelen.
$ CPUHogs [0]
Als u dat doet, krijgt u het eerste object in de verzameling.
Do not Getught!
Variabelen in PowerShell zijn standaard zwak ingetikt, wat betekent dat ze alle soorten gegevens kunnen bevatten, dit lijkt PowerShell de hele tijd te raken!
$ a = 10
$ b = '20'
Dus we hebben twee variabelen, één bevat een string en de ander een geheel getal. Dus wat gebeurt er als je ze toevoegt? Het hangt in feite af van de volgorde waarin je ze toevoegt.
$ a + $ b = 30
Terwijl
$ b + $ a = 2010
In het eerste voorbeeld is de eerste operand een geheel getal, $ a, dus volgens PowerShell is datje probeert om wiskunde te doen en probeert daarom ook om het even welke andere operanden in hele getallen te converteren. In het tweede voorbeeld is de eerste operand echter een tekenreeks, dus PowerShell converteert gewoon de rest van de operanden naar tekenreeksen en voegt ze samen. Meer geavanceerde scripters voorkomen dit soort kaarten door de variabele in het type te gieten dat ze verwachten.
[int] $ Number = 5
[int] $ Number = '5'
Het bovenstaande resulteert allebei in de Getalvariabele die een geheel getalobject met een waarde van 5 bevat.
Invoer en uitvoer
Omdat PowerShell bedoeld is om dingen te automatiseren, je zult willen voorkomen dat gebruikers waar mogelijk informatie wordt gevraagd voor informatie. Met dat gezegd, er zullen tijden zijn dat je het niet kunt vermijden, en voor die tijden hebben we de Read-Host-cmdlet. Het gebruiken is heel eenvoudig:
$ FirstName = Read-Host - Prompt 'Voer uw voornaam in'
Wat u ook invoert, wordt dan opgeslagen in de variabele.
Schrijfuitgang is net zo gemakkelijk met de cmdlet Write-Output.
Write-Output "How-To Geek Rocks!"
Kom morgen met ons mee waar we alles wat we hebben geleerd met elkaar verbinden!