Udostępnij za pomocą


Write-Progress

Wyświetla pasek postępu w oknie polecenia programu PowerShell.

Składnia

Default (domyślnie)

Write-Progress
    [-Activity] <String>
    [[-Status] <String>]
    [[-Id] <Int32>]
    [-PercentComplete <Int32>]
    [-SecondsRemaining <Int32>]
    [-CurrentOperation <String>]
    [-ParentId <Int32>]
    [-Completed]
    [-SourceId <Int32>]
    [<CommonParameters>]

Opis

Polecenie cmdlet Write-Progress wyświetla pasek postępu w oknie polecenia programu Windows PowerShell, które przedstawia stan uruchomionego polecenia lub skryptu. Możesz wybrać wskaźniki, odzwierciedlone na pasku oraz tekst wyświetlany powyżej i poniżej paska postępu.

Przykłady

Przykład 1. Wyświetlanie postępu pętli For

for ($i = 1; $i -le 100; $i++ )
{
    Write-Progress -Activity "Search in Progress" -Status "$i% Complete:" -PercentComplete $i;
}

To polecenie wyświetla postęp pętli For, która liczy się od 1 do 100.

Polecenie cmdlet Write-Progress zawiera nagłówek paska stanu Activity, wiersz stanu i zmienną $i (licznik w pętli For), który wskazuje względną kompletność zadania.

Przykład 2. Wyświetlanie postępu zagnieżdżonych pętli 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

W tym przykładzie przedstawiono postęp dwóch zagnieżdżonych pętli For, z których każdy jest reprezentowany przez pasek postępu.

Polecenie Write-Progress drugiego paska postępu zawiera parametr Id, który odróżnia go od pierwszego paska postępu.

Bez parametru Id paski postępu będą nakładane na siebie zamiast wyświetlać jeden poniżej drugiego.

Przykład 3. Wyświetlanie postępu podczas wyszukiwania ciągu

# 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
}

To polecenie wyświetla postęp polecenia w celu znalezienia ciągu "bios" w dzienniku zdarzeń systemu.

Wartość parametru PercentComplete jest obliczana przez podzielenie liczby zdarzeń przetworzonych $I przez łączną liczbę zdarzeń pobranych $Events.count, a następnie pomnożenie tego wyniku przez 100.

Parametry

-Activity

Określa pierwszy wiersz tekstu w nagłówku powyżej paska stanu. W tym tekście opisano działanie, którego postęp jest zgłaszany.

Właściwości parametru

Typ:String
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:1
Obowiązkowe:True
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Completed

Wskazuje, czy pasek postępu jest widoczny. Jeśli ten parametr zostanie pominięty, Write-Progress wyświetla informacje o postępie.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-CurrentOperation

Określa wiersz tekstu poniżej paska postępu. W tym tekście opisano operację, która jest obecnie wykonywana.

Właściwości parametru

Typ:String
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Id

Określa identyfikator, który odróżnia każdy pasek postępu od innych. Użyj tego parametru podczas tworzenia więcej niż jednego paska postępu w jednym poleceniu. Jeśli paski postępu nie mają różnych identyfikatorów, są one nakładane zamiast być wyświetlane w serii.

Właściwości parametru

Typ:Int32
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:3
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-ParentId

Określa działanie nadrzędne bieżącego działania. Użyj wartości -1, jeśli bieżące działanie nie ma działania nadrzędnego.

Właściwości parametru

Typ:Int32
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-PercentComplete

Określa wartość procentową ukończonego działania. Użyj wartości -1, jeśli procent ukończenia jest nieznany lub nie dotyczy.

Właściwości parametru

Typ:Int32
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-SecondsRemaining

Określa przewidywaną liczbę sekund pozostałych do momentu zakończenia działania. Użyj wartości -1, jeśli liczba sekund pozostałych jest nieznana lub nie dotyczy.

Właściwości parametru

Typ:Int32
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-SourceId

Określa źródło rekordu.

Właściwości parametru

Typ:Int32
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Status

Określa drugi wiersz tekstu w nagłówku powyżej paska stanu. W tym tekście opisano bieżący stan działania.

Właściwości parametru

Typ:String
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:2
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

CommonParameters

To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.

Dane wejściowe

None

Nie można przekazać danych wejściowych potoku do tego polecenia cmdlet.

Dane wyjściowe

None

Write-Progress nie generuje żadnych danych wyjściowych.

Uwagi

Jeśli pasek postępu nie jest wyświetlany, sprawdź wartość zmiennej $ProgressPreference. Jeśli wartość jest ustawiona na SilentlyContinue, pasek postępu nie jest wyświetlany. Aby uzyskać więcej informacji na temat preferencji programu Windows PowerShell, zobacz about_Preference_Variables.

Parametry polecenia cmdlet odpowiadają właściwościom klasy System.Management.Automation.ProgressRecord. Aby uzyskać więcej informacji, zobacz ProgressRecord Class w bibliotece MSDN.