Write-Progress
Zeigt eine Statusleiste in einem PowerShell-Befehlsfenster an.
Syntax
Default (Standard)
Write-Progress
[-Activity] <String>
[[-Status] <String>]
[[-Id] <Int32>]
[-PercentComplete <Int32>]
[-SecondsRemaining <Int32>]
[-CurrentOperation <String>]
[-ParentId <Int32>]
[-Completed]
[-SourceId <Int32>]
[<CommonParameters>]
Beschreibung
Das Cmdlet Write-Progress zeigt eine Statusleiste in einem Windows PowerShell-Befehlsfenster an, das den Status eines ausgeführten Befehls oder Skripts darstellt.
Sie können die Indikatoren auswählen, die die Leiste widerspiegelt, und den Text, der oberhalb und unterhalb der Statusleiste angezeigt wird.
Beispiele
Beispiel 1: Anzeigen des Fortschritts einer For-Schleife
for ($i = 1; $i -le 100; $i++ )
{
Write-Progress -Activity "Search in Progress" -Status "$i% Complete:" -PercentComplete $i;
}
Dieser Befehl zeigt den Fortschritt einer For-Schleife an, die zwischen 1 und 100 zählt.
Das Cmdlet Write-Progress enthält eine Statusleistenüberschrift Activity, eine Statuszeile und die Variable $i (der Zähler in der For-Schleife), die die relative Vollständigkeit des Vorgangs angibt.
Beispiel 2: Anzeigen des Fortschritts geschachtelter For-Schleifen
for($I = 1; $I -lt 101; $I++ )
{
Write-Progress -Activity Updating -Status 'Progress->' -PercentComplete $I -CurrentOperation OuterLoop
for($j = 1; $j -lt 101; $j++ )
{
Write-Progress -Id 1 -Activity Updating -Status 'Progress' -PercentComplete $j -CurrentOperation InnerLoop
}
}
Updating
Progress ->
[ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo]
OuterLoop
Updating
Progress
[oooooooooooooooooo ]
InnerLoop
In diesem Beispiel wird der Fortschritt von zwei geschachtelten For-Schleifen angezeigt, die jeweils durch eine Statusanzeige dargestellt werden.
Der Befehl Write-Progress für die zweite Statusleiste enthält den parameter ID, der ihn von der ersten Statusleiste unterscheidet.
Ohne den parameter ID werden die Statusanzeigen nebeneinander angeordnet, anstatt untereinander angezeigt zu werden.
Beispiel 3: Anzeigen des Fortschritts beim Suchen nach einer Zeichenfolge
# Use Get-EventLog to get the events in the System log and store them in the $Events variable.
$Events = Get-EventLog -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 a 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
# 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 ($i/$Events.count*100)
} -End {
# Display the matching messages using the out variable.
$out
}
Mit diesem Befehl wird der Fortschritt eines Befehls angezeigt, um die Zeichenfolge "bios" im Systemereignisprotokoll zu finden.
Der PercentComplete Parameterwert wird berechnet, indem die Anzahl der Ereignisse dividiert wird, die $I durch die Gesamtanzahl der $Events.count abgerufenen Ereignisse dividiert und dann mit 100 multipliziert werden.
Parameter
-Activity
Gibt die erste Textzeile in der Überschrift oberhalb der Statusleiste an. Dieser Text beschreibt die Aktivität, deren Fortschritt gemeldet wird.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | 1 |
| Obligatorisch: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Completed
Gibt an, ob die Statusanzeige sichtbar ist.
Wenn dieser Parameter nicht angegeben wird, zeigt Write-Progress Statusinformationen an.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-CurrentOperation
Gibt die Textzeile unterhalb der Statusleiste an. In diesem Text wird der vorgang beschrieben, der gerade ausgeführt wird.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Id
Gibt eine ID an, die die einzelnen Statusanzeigen von den anderen unterscheidet. Verwenden Sie diesen Parameter, wenn Sie mehr als eine Statusleiste in einem einzigen Befehl erstellen. Wenn die Statusanzeigen keine unterschiedlichen IDs aufweisen, werden sie überlagert, anstatt in einer Serie angezeigt zu werden.
Parametereigenschaften
| Typ: | Int32 |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | 3 |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-ParentId
Gibt die übergeordnete Aktivität der aktuellen Aktivität an. Verwenden Sie den Wert -1, wenn die aktuelle Aktivität keine übergeordnete Aktivität aufweist.
Parametereigenschaften
| Typ: | Int32 |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-PercentComplete
Gibt den Prozentsatz der abgeschlossenen Aktivität an. Verwenden Sie den Wert -1, wenn der Prozentsatz unbekannt oder nicht zutreffend ist.
Parametereigenschaften
| Typ: | Int32 |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-SecondsRemaining
Gibt die projizierte Anzahl der verbleibenden Sekunden an, bis die Aktivität abgeschlossen ist. Verwenden Sie den Wert -1, wenn die verbleibende Anzahl von Sekunden unbekannt oder nicht zutreffend ist.
Parametereigenschaften
| Typ: | Int32 |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-SourceId
Gibt die Quelle des Datensatzes an.
Parametereigenschaften
| Typ: | Int32 |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Status
Gibt die zweite Textzeile in der Überschrift oberhalb der Statusleiste an. Dieser Text beschreibt den aktuellen Status der Aktivität.
Parametereigenschaften
| Typ: | String |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | 2 |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
CommonParameters
Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.
Eingaben
None
Eingaben können nicht an dieses Cmdlet weitergereicht werden.
Ausgaben
None
Write-Progress generiert keine Ausgabe.
Hinweise
Wenn die Statusanzeige nicht angezeigt wird, überprüfen Sie den Wert der variablen $ProgressPreference. Wenn der Wert auf SilentlyContinue festgelegt ist, wird die Statusanzeige nicht angezeigt. Weitere Informationen zu Windows PowerShell-Einstellungen finden Sie unter about_Preference_Variables.
Die Parameter des Cmdlets entsprechen den Eigenschaften der System.Management.Automation.ProgressRecord Klasse. Weitere Informationen finden Sie unter ProgressRecord Class in der MSDN Library.