Zeigt eine Statusanzeige in einem Windows PowerShell-Befehlsfenster an. (Write-Progress)
NAMEWrite-ProgressÜBERSICHTZeigt eine Statusanzeige in einem Windows PowerShell-Befehlsfenster an.SYNTAXWrite-Progress [-Activity] <string> [-Status] <string> [[-Id] <int>] [-Completed] [-CurrentOperation <string>] [-ParentId <int>] [-PercentComplete <int>] [-SecondsRemaining <int>] [-SourceId <int>] [<CommonParameters>]BESCHREIBUNGMit dem Cmdlet "Write-Progress" wird eine Statusanzeige in einem Windows PowerShell-Befehlsfenster angezeigt, die den Status eines ausgeführten Befehls oder Skripts darstellt. Sie können die von der Statusanzeige dargestellten Indikatoren sowie den über und unter der Statusanzeige angezeigten Text auswählen.PARAMETER-Activity <string> Gibt die erste Textzeile in der Überschrift über der Statusleiste an. Dieser Text beschreibt die Aktivität, deren Status gemeldet wird. Erforderlich? true Position? 1 Standardwert Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?false -Completed [<SwitchParameter>] Gibt an, ob die Statusleiste sichtbar ist. Wenn dieser Parameter weggelassen wird, zeigt Write-Progress Statusinformationen an. Erforderlich? false Position? named Standardwert Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?false -CurrentOperation <string> Gibt die Textzeile unter der Statusanzeige an. Dieser Text beschreibt den gegenwärtig ausgeführten Vorgang. Erforderlich? false Position? named Standardwert Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?false -Id <int> Gibt eine ID an, mit der die einzelnen Statusanzeigen voneinander unterschieden werden. Verwenden Sie diesen Parameter, wenn Sie in einem einzelnen Befehl mehrere Statusanzeigen erstellen. Wenn die Statusanzeigen keine unterschiedlichen IDs aufweisen, werden sie aufeinander statt in Reihe angezeigt. Erforderlich? false Position? 3 Standardwert Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?false -ParentId <int> Gibt die übergeordnete Aktivität der aktuellen Aktivität an. Verwenden Sie den Wert -1, wenn für die aktuelle Aktivität keine übergeordnete Aktivität vorhanden ist. Erforderlich? false Position? named Standardwert Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?false -PercentComplete <int> Gibt den bereits ausgeführten Anteil der Aktivität in Prozent an. Verwenden Sie den Wert -1, wenn der Prozentsatz der ausgeführten Aktivität nicht bekannt oder nicht zutreffend ist. Erforderlich? false Position? named Standardwert Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?false -SecondsRemaining <int> Gibt die voraussichtliche Anzahl von Sekunden bis zum Abschluss der Aktivität an. Verwenden Sie den Wert -1, wenn die Anzahl der restlichen Sekunden nicht bekannt oder nicht zutreffend ist. Erforderlich? false Position? named Standardwert Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?false -SourceId <int> Gibt die Quelle des Datensatzes an. Erforderlich? false Position? named Standardwert Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?false -Status <string> Gibt die zweite Textzeile in der Überschrift über der Statusleiste an. Dieser Text beschreibt den aktuellen Status der Aktivität. Erforderlich? true Position? 2 Standardwert Pipelineeingaben akzeptieren?false Platzhalterzeichen akzeptieren?false <CommonParameters> Dieses Cmdlet unterstützt folgende allgemeine Parameter: "Verbose", "Debug", "ErrorAction", "ErrorVariable", "WarningAction", "WarningVariable", "OutBuffer" und "OutVariable". Weitere Informationen erhalten Sie mit dem Befehl "get-help about_commonparameters".EINGABENKeiner Eingaben können nicht über die Pipeline an dieses Cmdlet übergeben werden.AUSGABENKeiner Write-Progress generiert keine Ausgabe.HINWEISEWenn 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 über Windows PowerShell-Einstellungen finden Sie unter "about_Preference_Variables". Die Parameter des Cmdlets entsprechen den Eigenschaften der ProgressRecord-Klasse (System.Management.Automation.ProgressRecord). Weitere Informationen finden Sie im Thema "ProgressRecord" im Windows PowerShell Software Development Kit (SDK).Beispiele
BEISPIEL 1C:\PS>for ($i = 1; $i -lt 101; $i++ ) {for ($j=0;$j -lt 10000;$j++) {} write-progress -activity "Search in Progress" -status "% Complete:" -percentcomplete $i;} Beschreibung ----------- Mit diesem Befehl wird der Status von zwei geschachtelten For-Schleifen angezeigt. Die erste Schleife zählt bis 100. Die zweite Schleife zählt für jedes Inkrement dieser Schleife bis 10.000. Der Befehl "Write-Progress" umfasst eine Statusanzeigenüberschrift ("activity"), eine Statuszeile und die Variable "$i" (der Zähler in der For-Schleife), die die relative Vollständigkeit der Aufgabe angibt.BEISPIEL 2C:\PS>for($i = 1; $i -lt 101; $i++ ) {write-progress -activity Updating -status progress-> -percentcomplete $i -currentOperation OuterLoop} for($i = 1; $i -lt 101; $i++ ) {write-progress -activity Updating -status progress -percentcomplete $i -id 1 -currentOperation InnerLoop} Updating progress -> [oooooooooooooooooo ] OutsideLoop Updating progress [oooooooooooooooooo ] InnerLoop Beschreibung ----------- In diesem Beispiel wird der Status von zwei geschachtelten For-Schleifen mit jeweils einer eigenen Statusanzeige angezeigt. Der Befehl "Write-Progress" für die zweite Statusanzeige enthält den Id-Parameter, der die zweite Statusanzeige von der ersten Statusanzeige unterscheidet. Ohne den Id-Parameter werden die Statusanzeigen aufeinander statt untereinander angezeigt.BEISPIEL 3C:\PS>$events = get-eventlog -logname system C:\PS> $events | foreach-object -begin {clear-host;$i=0;$out=""} ` -process {if($_.message -like "*bios*") {$out=$out + $_.Message}; $i = $i+1;` write-progress -activity "Searching Events" ` -status "Progress:" -percentcomplete ($i/$events.count*100)} ` -end {$out} Beschreibung ----------- Dieser Befehl zeigt den Status eines Befehls an, mit dem die Zeichenfolge "bios" im Systemereignisprotokoll gesucht wird. In der ersten Zeile des Befehls ruft das Cmdlet "Get-EventLog" die Ereignisse im Systemprotokoll ab und speichert sie in der Variablen "$events". In der zweiten Zeile werden die Ereignisse über die Pipeline an das Cmdlet "ForEach-Object" übergeben. Vor der Verarbeitung wird der Inhalt des Bildschirms mit dem Cmdlet "Clear-Host" gelöscht, die Zählervariable "$i" wird auf 0 festgelegt, und die Ausgabevariable "$out" wird auf eine leere Zeichenfolge festgelegt. In der dritten Zeile, bei der es sich um den Process-Sriptblock des Cmdlet "ForEach-Object" handelt, sucht das Cmdlet in der Meldungseigenschaft jedes eingehenden Objekts nach "bios". Wenn die Zeichenfolge gefunden wird, wird $out die Meldung hinzugefügt. In der vierten Zeile wird die Zählervariable "$i" erhöht, um aufzuzeichnen, dass ein weiteres Ereignis überprüft wurde. In der fünften Zeile wird das Cmdlet "Write-Progress" mit Werten für die Textfelder "Activity" und "Status" verwendet, mit denen die erste bzw. zweite Zeile der Statusanzeigenüberschrift erstellt wird. Der Wert des PercentComplete-Parameters wird berechnet, indem die Anzahl der verarbeiteten Ereignisse ($i) durch die Gesamtzahl der abgerufenen Ereignisse ($events.count) dividiert und das Ergebnis mit 100 multipliziert wird. In der letzten Zeile wird der End-Parameter des Cmdlet "ForEach-Object" verwendet, um die in der Variablen "$out" gespeicherten Meldungen anzuzeigen. VERWANDTE LINKS Online version: http://go.microsoft.com/fwlink/?LinkID=113428 (möglicherweise auf Englisch) Write-Verbose Write-Error Write-Host Write-Debug Write-Output Write-Warning C:\Windows>powershell get-help New-Object -full
Microsoft Windows [Version 10.0.19045.3693]
Copyright (c) 2023 Microsoft Corporation.
ColorConsole [Version 3.7.1000] PowerShell 2.0-Export