Een variabele kan dus verschillende soorten inhoud hebben, zoals een getal of een tekst. Het is verstandig om van tevoren aan te geven wat de inhoud van een variabele is. Dat noemen we het 'declareren van een variabele'. Bekijk eens onderstaand voorbeeld.
$a = 5
$b = '3'
$a + $b
Het antwoord zal 8 zijn.
Terwijl het antwoord 35 zal zijn bij:
$a = 5
$b = '3'
$b + $a
De verklaring zit in de inhoud van de variabelen. In de variabele a zit de waarde 5. Omdat deze niet tussen aanhalingstekens staat wordt deze waarde als een getal (integer) gezien. In de som $a + $b gaat PowerShell ervan uit dat het tweede getal dan ook een getal zal zijn. Het telt deze bij elkaar op en geeft het antwoord 8.
In het tweede voorbeeld wordt eerst de waarde van variabele b genomen. Dit is de waarde 3, maar deze staat tussen aanhalingstekens. PowerShell weet daardoor dus dat het om tekst (een string) gaat. Door deze waarde bij de volgende op te tellen gaat PowerShell ervan uit dat de tweede waarde dus ook een tekst is. De twee teksten wor den bij elkaar opgeteld en dus naast elkaar als een 3 en een 5 afgebeeld en dat levert de 35 op.
Zeker als anderen ook gaan werken met een door jou geschreven script is het van belang van tevoren aan te geven welk soort inhoud de variabele heeft. PowerShell kent er een redelijk aantal, waaronder:
Int | 32 bits integer (getal) |
Long | 64 bits integer (getal) |
String | Tekst |
Byte | 8 bits karakter |
Bool | Boolean, waarde True or False |
Decimal | 128 bits decimale waarde |
Het declareren van een variabele gaat als volgt:
[int]$a = 5
[string]$b = '3' of [string]$b = 'drie'
Als je in PowerShell nu het volgende opgeeft: $a = 'drie, dan krijg je een foutmelding. Dat komt omdat PowerShell nu alleen Integers accepteert als de inhoud voor de variabele a.
Maak een script dat bij het uitvoeren 4 uitkomsten geeft, namelijk:
Uiteraard zorg je dat alle variabelen gedeclareerd zijn en dat je de juiste aanhalingstekens gebruikt. Test je script meerdere malen met diverse getallen om te controleren of het goed en foutloos werkt.