Write-Progress
Geeft een voortgangsbalk weer in een PowerShell-opdrachtvenster.
Syntaxis
Default (Standaard)
Write-Progress
    [[-Activity] <String>]
    [[-Status] <String>]
    [[-Id] <Int32>]
    [-PercentComplete <Int32>]
    [-SecondsRemaining <Int32>]
    [-CurrentOperation <String>]
    [-ParentId <Int32>]
    [-Completed]
    [-SourceId <Int32>]
    [<CommonParameters>]
Description
De Write-Progress-cmdlet geeft een voortgangsbalk weer in een PowerShell-opdrachtvenster met de status van een actieve opdracht of script. U kunt de indicatoren selecteren die door de balk worden weergegeven en de tekst die boven en onder de voortgangsbalk wordt weergegeven.
PowerShell 7.2 heeft de $PSStyle automatische variabele toegevoegd die wordt gebruikt om te bepalen hoe bepaalde informatie in PowerShell wordt weergegeven met behulp van ANSI-escapereeksen. Met het $PSStyle.Progress lid kunt u de weergave van de voortgangsbalk beheren.
- 
              $PSStyle.Progress.Style- Een ANSI-tekenreeks die de renderingstijl instelt.
- 
              $PSStyle.Progress.MaxWidth- Hiermee stelt u de maximale breedte van de weergave in. Standaardwaarde is120. De minimumwaarde is 18.
- 
              $PSStyle.Progress.View- Een opsomming met waarden,MinimalenClassic.Classicis de bestaande rendering zonder wijzigingen.Minimalis een minimalistische weergave op één regel.Minimalis de standaardwaarde.
Zie $PSStylevoor meer informatie over .
Opmerking
Als de host geen ondersteuning biedt voor Virtual Terminal, wordt $PSStyle.Progress.View automatisch ingesteld op Classic.
Voorbeelden
Voorbeeld 1: De voortgang van een for-lus weergeven
for ($i = 1; $i -le 100; $i++ ) {
    Write-Progress -Activity "Search in Progress" -Status "$i% Complete:" -PercentComplete $i
    Start-Sleep -Milliseconds 250
}
Met deze opdracht wordt de voortgang van een for lus weergegeven die telt van 1 tot 100.
De Write-Progress cmdlet bevat een kop van de statusbalk Activity, een statusregel en de variabele $i (de teller in de for lus), die de relatieve volledigheid van de taak aangeeft.
Voorbeeld 2: de voortgang van geneste for-lussen weergeven
$PSStyle.Progress.View = 'Classic'
for($I = 0; $I -lt 10; $I++ ) {
    $OuterLoopProgressParameters = @{
        Activity         = 'Updating'
        Status           = 'Progress->'
        PercentComplete  = $I * 10
        CurrentOperation = 'OuterLoop'
    }
    Write-Progress @OuterLoopProgressParameters
    for($j = 1; $j -lt 101; $j++ ) {
        $InnerLoopProgressParameters = @{
            ID               = 1
            Activity         = 'Updating'
            Status           = 'Inner Progress'
            PercentComplete  = $j
            CurrentOperation = 'InnerLoop'
        }
        Write-Progress @InnerLoopProgressParameters
        Start-Sleep -Milliseconds 25
    }
}
Updating
Progress ->
 [ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo]
OuterLoop
Updating
Inner Progress
 [oooooooooooooooooo                                                   ]
InnerLoop
In dit voorbeeld wordt de voortgangsweergave ingesteld op Classic en wordt vervolgens de voortgang van twee geneste for lussen weergegeven, die elk worden vertegenwoordigd door een voortgangsbalk.
De opdracht Write-Progress voor de tweede voortgangsbalk bevat de parameter id die deze onderscheidt van de eerste voortgangsbalk.
Zonder de parameter Id, worden de voortgangsbalken op elkaar geplaatst in plaats van er een onder de andere weer te geven.
Opmerking
In dit voorbeeld wordt de voortgangsweergave ingesteld op Classic, waarin de CurrentOperation waarden voor elke voortgangsbalk worden weergegeven. Wanneer de voortgangsweergave is ingesteld op Minimal, worden de CurrentOperation-waarden niet weergegeven.
Voorbeeld 3: de voortgang weergeven tijdens het zoeken naar een tekenreeks
# Use Get-WinEvent to get the events in the System log and store them in the $Events variable.
$Events = Get-WinEvent -LogName System
# Pipe the events to the ForEach-Object cmdlet.
$Events | ForEach-Object -Begin {
    # In the Begin block, use Clear-Host to clear the screen.
    Clear-Host
    # Set the $i counter variable to zero.
    $i = 0
    # Set the $out variable to an empty string.
    $out = ""
} -Process {
    # In the Process script block search the message property of each incoming object for "bios".
    if($_.Message -like "*bios*")
    {
        # Append the matching message to the out variable.
        $out=$out + $_.Message
    }
    # Increment the $i counter variable which is used to create the progress bar.
    $i = $i+1
    # Determine the completion percentage
    $Completed = ($i/$Events.Count) * 100
    # Use Write-Progress to output a progress bar.
    # The Activity and Status parameters create the first and second lines of the progress bar
    # heading, respectively.
    Write-Progress -Activity "Searching Events" -Status "Progress:" -PercentComplete $Completed
} -End {
    # Display the matching messages using the out variable.
    $out
}
Met deze opdracht wordt de voortgang van een opdracht weergegeven om de tekenreeks 'bios' te vinden in het gebeurtenislogboek van het systeem.
De parameterwaarde PercentComplete wordt berekend door het aantal gebeurtenissen te delen dat is verwerkt $i door het totale aantal gebeurtenissen dat is opgehaald $Events.Count en dat resultaat vervolgens te vermenigvuldigen met 100.
Voorbeeld 4: Voortgang weergeven voor elk niveau van een geneste proces
$PSStyle.Progress.View = 'Classic'
foreach ( $i in 1..10 ) {
  Write-Progress -Id 0 "Step $i"
  foreach ( $j in 1..10 ) {
    Write-Progress -Id 1 -ParentId 0 "Step $i - Substep $j"
    foreach ( $k in 1..10 ) {
      Write-Progress -Id 2  -ParentId 1 "Step $i - Substep $j - iteration $k"
      Start-Sleep -Milliseconds 150
    }
  }
}
Step 1
     Processing
    Step 1 - Substep 2
         Processing
        Step 1 - Substep 2 - Iteration 3
             Processing
In dit voorbeeld kunt u de parameter ParentId gebruiken om uitvoer van bovenliggende en onderliggende items weer te geven in de voortgang van elke stap.
Parameters
-Activity
Hiermee geeft u de eerste regel tekst in de kop boven de statusbalk. In deze tekst wordt de activiteit beschreven waarvan de voortgang wordt gerapporteerd.
Parametereigenschappen
| Type: | String | 
| Default value: | None | 
| Ondersteunt jokertekens: | False | 
| DontShow: | False | 
Parametersets
(All)
| Position: | 0 | 
| Verplicht: | False | 
| Waarde uit pijplijn: | False | 
| Waarde uit pijplijn op eigenschapsnaam: | False | 
| Waarde van resterende argumenten: | False | 
-Completed
Geeft aan of de voortgangsbalk zichtbaar is. Als deze parameter wordt weggelaten, geeft Write-Progress voortgangsgegevens weer.
Parametereigenschappen
| Type: | SwitchParameter | 
| Default value: | None | 
| Ondersteunt jokertekens: | False | 
| DontShow: | False | 
Parametersets
(All)
| Position: | Named | 
| Verplicht: | False | 
| Waarde uit pijplijn: | False | 
| Waarde uit pijplijn op eigenschapsnaam: | False | 
| Waarde van resterende argumenten: | False | 
-CurrentOperation 
		Hiermee geeft u de tekstregel onder de voortgangsbalk in de Classic voortgangsweergave. In deze tekst wordt de bewerking beschreven die momenteel plaatsvindt. Deze parameter heeft geen effect wanneer de voortgangsweergave is ingesteld op Minimal.
Parametereigenschappen
| Type: | String | 
| Default value: | None | 
| Ondersteunt jokertekens: | False | 
| DontShow: | False | 
Parametersets
(All)
| Position: | Named | 
| Verplicht: | False | 
| Waarde uit pijplijn: | False | 
| Waarde uit pijplijn op eigenschapsnaam: | False | 
| Waarde van resterende argumenten: | False | 
-Id
Hiermee geeft u een id op waarmee elke voortgangsbalk van de andere wordt onderscheiden. Gebruik deze parameter wanneer u meer dan één voortgangsbalk maakt in één opdracht. Als de voortgangsbalken geen andere id's hebben, worden ze vervangen in plaats van in een reeks te worden weergegeven. Negatieve waarden zijn niet toegestaan.
Parametereigenschappen
| Type: | Int32 | 
| Default value: | None | 
| Ondersteunt jokertekens: | False | 
| DontShow: | False | 
Parametersets
(All)
| Position: | 2 | 
| Verplicht: | False | 
| Waarde uit pijplijn: | False | 
| Waarde uit pijplijn op eigenschapsnaam: | False | 
| Waarde van resterende argumenten: | False | 
-ParentId 
		Hiermee geeft u de bovenliggende activiteit van de huidige activiteit. Gebruik de waarde -1 als de huidige activiteit geen bovenliggende activiteit heeft.
Parametereigenschappen
| Type: | Int32 | 
| Default value: | None | 
| Ondersteunt jokertekens: | False | 
| DontShow: | False | 
Parametersets
(All)
| Position: | Named | 
| Verplicht: | False | 
| Waarde uit pijplijn: | False | 
| Waarde uit pijplijn op eigenschapsnaam: | False | 
| Waarde van resterende argumenten: | False | 
-PercentComplete 
		Hiermee geeft u het percentage van de activiteit die is voltooid. Gebruik de waarde -1 als het percentage voltooid onbekend is of niet van toepassing is.
Parametereigenschappen
| Type: | Int32 | 
| Default value: | None | 
| Ondersteunt jokertekens: | False | 
| DontShow: | False | 
Parametersets
(All)
| Position: | Named | 
| Verplicht: | False | 
| Waarde uit pijplijn: | False | 
| Waarde uit pijplijn op eigenschapsnaam: | False | 
| Waarde van resterende argumenten: | False | 
-SecondsRemaining 
		Hiermee geeft u het verwachte aantal seconden resterende totdat de activiteit is voltooid. Gebruik de waarde -1 als het aantal resterende seconden onbekend of niet van toepassing is.
Parametereigenschappen
| Type: | Int32 | 
| Default value: | None | 
| Ondersteunt jokertekens: | False | 
| DontShow: | False | 
Parametersets
(All)
| Position: | Named | 
| Verplicht: | False | 
| Waarde uit pijplijn: | False | 
| Waarde uit pijplijn op eigenschapsnaam: | False | 
| Waarde van resterende argumenten: | False | 
-SourceId 
		Hiermee geeft u de bron van de record. U kunt dit gebruiken in plaats van Id-, maar kan niet worden gebruikt met andere parameters, zoals ParentId.
Parametereigenschappen
| Type: | Int32 | 
| Default value: | None | 
| Ondersteunt jokertekens: | False | 
| DontShow: | False | 
Parametersets
(All)
| Position: | Named | 
| Verplicht: | False | 
| Waarde uit pijplijn: | False | 
| Waarde uit pijplijn op eigenschapsnaam: | False | 
| Waarde van resterende argumenten: | False | 
-Status
Hiermee geeft u de tweede regel tekst in de kop boven de statusbalk. In deze tekst wordt de huidige status van de activiteit beschreven.
Parametereigenschappen
| Type: | String | 
| Default value: | None | 
| Ondersteunt jokertekens: | False | 
| DontShow: | False | 
Parametersets
(All)
| Position: | 1 | 
| Verplicht: | False | 
| Waarde uit pijplijn: | False | 
| Waarde uit pijplijn op eigenschapsnaam: | False | 
| Waarde van resterende argumenten: | False | 
CommonParameters
Deze cmdlet ondersteunt de algemene parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction en -WarningVariable. Zie about_CommonParametersvoor meer informatie.
Invoerwaarden
None
U kunt geen objecten doorsluisen naar deze cmdlet.
Uitvoerwaarden
None
Deze cmdlet retourneert geen uitvoer.
Notities
Als de voortgangsbalk niet wordt weergegeven, controleert u de waarde van de variabele $ProgressPreference. Als de waarde is ingesteld op SilentlyContinue, wordt de voortgangsbalk niet weergegeven. Zie about_Preference_Variablesvoor meer informatie over PowerShell-voorkeuren.
De parameters van de cmdlet komen overeen met de eigenschappen van de System.Management.Automation.ProgressRecord klasse. Zie ProgressRecord Classvoor meer informatie.