PowerShell
De voortgangsbalk gebruiken
Zoeken…
Invoering
Een voortgangsbalk kan worden gebruikt om aan te geven dat er iets aan de gang is. Het is een tijdbesparende en gelikte functie die men zou moeten hebben. Voortgangsbalken zijn ongelooflijk handig tijdens het debuggen om erachter te komen welk deel van het script wordt uitgevoerd, en ze voldoen aan de mensen die scripts uitvoeren om bij te houden wat er gebeurt. Het is gebruikelijk om een soort van voortgang weer te geven wanneer het lang duurt voordat een script is voltooid. Wanneer een gebruiker het script start en er niets gebeurt, begint men zich af te vragen of het script correct is gestart.
Eenvoudig gebruik van de voortgangsbalk
1..100 | ForEach-Object {
Write-Progress -Activity "Copying files" -Status "$_ %" -Id 1 -PercentComplete $_ -CurrentOperation "Copying file file_name_$_.txt"
Start-Sleep -Milliseconds 500 # sleep simulates working code, replace this line with your executive code (i.e. file copying)
}
Houd er rekening mee dat dit voorbeeld voor de beknoptheid geen uitvoerende code bevat (gesimuleerd met Start-Sleep
). Het is echter mogelijk om het direct uit te voeren zoals het is en het vervolgens te wijzigen en ermee te spelen.
Zo ziet het resultaat eruit in de PS-console:
Zo ziet het resultaat eruit in PS ISE:
Gebruik van innerlijke voortgangsbalk
1..10 | foreach-object {
$fileName = "file_name_$_.txt"
Write-Progress -Activity "Copying files" -Status "$($_*10) %" -Id 1 -PercentComplete ($_*10) -CurrentOperation "Copying file $fileName"
1..100 | foreach-object {
Write-Progress -Activity "Copying contents of the file $fileName" -Status "$_ %" -Id 2 -ParentId 1 -PercentComplete $_ -CurrentOperation "Copying $_. line"
Start-Sleep -Milliseconds 20 # sleep simulates working code, replace this line with your executive code (i.e. file copying)
}
Start-Sleep -Milliseconds 500 # sleep simulates working code, replace this line with your executive code (i.e. file search)
}
Houd er rekening mee dat dit voorbeeld voor de beknoptheid geen uitvoerende code bevat (gesimuleerd met Start-Sleep
). Het is echter mogelijk om het direct uit te voeren zoals het is en het vervolgens te wijzigen en ermee te spelen.
Zo ziet het resultaat eruit in de PS-console:
Zo ziet het resultaat eruit in PS ISE: