Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door Yoeri Lauwers

Eindredacteur

Een introductie tot Windows PowerShell

Conditionele statements

Een van de meest fundamentele acties in scripts is het vergelijken van twee of meer waarden en op basis van de uitkomst een specifieke actie ondernemen. Conditionele expressies mochten dus ook in de Powershell niet ontbreken en bijgevolg hebben de ontwikkelaars niet alleen in een if-statement voorzien, maar behoren ook switch-commando's tot het arsenaal van de Powershell-scripter.

Overigens moet bij het gebruik van deze statements wel vermeld worden dat deze niet helemaal gelijk zijn aan wat .NET-ontwikkelaars gewend zijn. Omdat de <- en >-tekens in de Powershell gebruikt worden om piping te verzorgen, dient men gebruik te maken van de eerder vermelde operatoren. Wat dan weer wel overeenkomt met hogere programmeertalen is het gebruik van de if-then-else-constructie.

PS> 3 -lt 5
True
PS> 3 -lt 5 -and 5 -lt 3
False
PS> if ("Test".GetType().Name -eq "String")
>> { "De variabele is van het type string" }
>> else { "De variabele is niet van het type string" }
>>
De variabele is van het type string
PS> if (123 | Get-Member | findstr "TypeName" | findstr "String")
>> { "De variabele is van het type string" }
>> else { "De variabele is niet van het type string" }
>>
De variabele is niet van het type string

Net zoals bij eenvoudige vergelijkingen is het ook mogelijk om het resultaat van een complete if-then-else-boom op te slaan in een variabele. $var = 5 -lt 6 zal dus tot resultaat hebben dat een boolean 'True' opgeslagen wordt in de variabele $var, evenals if (5 -lt 6) { $var = "Waar"} else { $var = "Onwaar"}. Dit laatste kan echter korter geschreven worden als $var = if (5 -lt 6) { "Waar"} else {"Onwaar"}.

Wanneer een variabele met meerdere waarden vergeleken moet worden, wordt een combinatie van if-statements echter al gauw onduidelijk. In dat geval kan een switch-structuur gebruikt worden, zoals die bekend is van programmeertalen als C++ en C#. Als geen van de gedefinieerde waarden als 'True' evalueert, zal de expressie die bij 'default' hoort uitgevoerd worden. Indien geen default gespecificeerd werd, zal er niets gebeuren, maar wordt ook geen foutmelding gegenereerd.

PS> $var = 2
PS> switch ($var) {
>> 1 { "Je koos voor de eerste optie" }
>> 2 { "Je koos voor de tweede optie" }
>> 3 { "Je koos voor de derde optie" }
>> default { "Je maakte een ongeldige keuze" }
>> }
>>
Je koos voor de tweede optie

Wat vind je van dit artikel?

Geef je mening in het Geachte Redactie-forum.

Apple iPhone 12 Microsoft Xbox Series X LG CX Google Pixel 5 Sony XH90 / XH92 Samsung Galaxy S21 5G Sony PlayStation 5 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True