Loops

Als je dezelfde actie meerdere keren wilt herhalen of alle items in een lijst afzonderlijk wilt aanspreken is het mogelijk om dat met behulp van een lus te doen.

Je kan zo een lus laten lopen tot er bepaalde vereisten voldaan zijn, voor een vooropgesteld aantal iteraties of voor alle items in een lijst.

While: Eerst test PowerShell of er aan een bepaalde voorwaarde voldaan wordt. Zolang die test positief terugkomt gaat wat er tussen de accolades staat uitgevoerd worden. Indien de test aan het begin al negatief is gaat er niets gebeuren.

$i = 0
while($i -lt 3)
{
    Write-Output $i
    $i++
}

Do While: Eerst loopt PowerShell door de lus, achteraf wordt er gecheckt of die lus nog eens moet herhaald worden. Indien de test aan het begin al negatief is gaat de lus toch 1 minstens 1 keer uitgevoerd worden (aangezien de test pas NA de lus gebeurt).

$i = 0
do
{
    Write-Output $i
    $i++
}while($i -lt 3)

Do Until: Hetzelfde als ‘Do While’ met als enige verschil dat de test negatief moet zijn om de lus te herhalen.

$i = 0
do
{
    Write-Output $i
    $i++
}until($i -ge 3)

For: For lussen hebben een speciale structuur in PowerShell. Er worden 3 dingen verwacht: Een initiële instelling, een conditionele test en een herhalende statement. Bij iedere iteratie wordt de statement 1 keer uitgevoerd en voor de lus uitgevoerd wordt word de test gedaan.

for($i = 0; $i -lt 3; $i++)
{
    Write-Output $i
}

ForEach: In een ForEach lus wordt een statement 1 keer uitgevoerd voor ieder item in een lijst/verzameling.

$processes = Get-Process
foreach($process in $processes)
{
    if($process.PM / 1024 / 1024 -gt 100)
    {
        Write-Output ('Process ' + $process.Name + ' is using more than 100 MB RAM.')
    }
}