Write-Progress
Zobrazí indikátor průběhu v příkazovém okně PowerShellu.
Syntaxe
Write-Progress
[-Activity] <String>
[[-Status] <String>]
[[-Id] <Int32>]
[-PercentComplete <Int32>]
[-SecondsRemaining <Int32>]
[-CurrentOperation <String>]
[-ParentId <Int32>]
[-Completed]
[-SourceId <Int32>]
[<CommonParameters>]
Description
Rutina Write-Progress
zobrazí indikátor průběhu v příkazovém okně Windows PowerShellu, který znázorňuje stav spuštěného příkazu nebo skriptu.
Můžete vybrat indikátory, které pruh odráží, a text, který se zobrazí nad a pod indikátorem průběhu.
Příklady
Příklad 1: Zobrazení průběhu smyčky For
for ($i = 1; $i -le 100; $i++ )
{
Write-Progress -Activity "Search in Progress" -Status "$i% Complete:" -PercentComplete $i;
}
Tento příkaz zobrazí průběh smyčky For, která počítá od 1 do 100.
Rutina Write-Progress
obsahuje záhlaví stavového řádku Activity
, stavový řádek a proměnnou $i
(čítač ve smyčce For), která označuje relativní úplnost úlohy.
Příklad 2: Zobrazení průběhu vnořených smyček For
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
Tento příklad zobrazuje průběh dvou vnořených smyček For, z nichž každá je reprezentována indikátorem průběhu.
Příkaz Write-Progress
druhého indikátoru průběhu obsahuje parametr id , který ho odlišuje od prvního indikátoru průběhu.
Bez ID parametru by byly indikátory průběhu překryvné na sebe místo toho, aby se zobrazovaly pod druhým.
Příklad 3: Zobrazení průběhu hledání řetězce
# 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
}
Tento příkaz zobrazí průběh příkazu k vyhledání řetězce bios v protokolu událostí systému.
Hodnota parametru
Parametry
-Activity
Určuje první řádek textu v záhlaví nad stavovým řádkem. Tento text popisuje aktivitu, jejíž průběh se hlásí.
Typ: | String |
Position: | 1 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Completed
Určuje, jestli je indikátor průběhu viditelný.
Pokud tento parametr vynecháte, Write-Progress
zobrazí informace o průběhu.
Typ: | SwitchParameter |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-CurrentOperation
Určuje řádek textu pod indikátorem průběhu. Tento text popisuje právě probíhající operaci.
Typ: | String |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Id
Určuje ID, které rozlišuje jednotlivé indikátory průběhu od ostatních. Tento parametr použijte při vytváření více než jednoho indikátoru průběhu v jednom příkazu. Pokud indikátory průběhu nemají různá ID, jsou místo zobrazení v řadě překryvné.
Typ: | Int32 |
Position: | 3 |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-ParentId
Určuje nadřazenou aktivitu aktuální aktivity. Pokud aktuální aktivita nemá žádnou nadřazenou aktivitu, použijte hodnotu -1.
Typ: | Int32 |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-PercentComplete
Určuje procento dokončené aktivity. Použijte hodnotu -1, pokud je procento dokončení neznámé nebo nelze použít.
Typ: | Int32 |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-SecondsRemaining
Určuje předpokládaný počet sekund zbývající do dokončení aktivity. Hodnotu použijte -1, pokud je počet sekund, které zbývá, neznámé nebo nepoužitelné.
Typ: | Int32 |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-SourceId
Určuje zdroj záznamu.
Typ: | Int32 |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Status
Určuje druhý řádek textu v záhlaví nad stavovým řádkem. Tento text popisuje aktuální stav aktivity.
Typ: | String |
Position: | 2 |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Vstupy
None
Vstup do této rutiny nelze převést.
Výstupy
None
Write-Progress
negeneruje žádný výstup.
Poznámky
Pokud se indikátor průběhu nezobrazí, zkontrolujte hodnotu proměnné $ProgressPreference
. Pokud je hodnota nastavena na SilentlyContinue, indikátor průběhu se nezobrazí. Další informace o předvolbách Windows PowerShellu najdete v tématu about_Preference_Variables.
Parametry rutiny odpovídají vlastnostem System.Management.Automation.ProgressRecord třídy. Další informace naleznete v tématu ProgressRecord třída v knihovně MSDN.