Write-Progress
PowerShell komut penceresinde ilerleme çubuğunu görüntüler.
Syntax
Write-Progress
[-Activity] <String>
[[-Status] <String>]
[[-Id] <Int32>]
[-PercentComplete <Int32>]
[-SecondsRemaining <Int32>]
[-CurrentOperation <String>]
[-ParentId <Int32>]
[-Completed]
[-SourceId <Int32>]
[<CommonParameters>]
Description
Cmdlet, Write-Progress
PowerShell komut penceresinde çalışan bir komutun veya betiğin durumunu gösteren bir ilerleme çubuğu görüntüler. Çubuğun yansıtdığı göstergeleri ve ilerleme çubuğunun üstünde ve altında görünen metni seçebilirsiniz.
Örnekler
Örnek 1: For döngüsünün ilerleme durumunu görüntüleme
for ($i = 1; $i -le 100; $i++ )
{
Write-Progress -Activity "Search in Progress" -Status "$i% Complete:" -PercentComplete $i;
}
Bu komut, 1 ile 100 arasında sayan for döngüsünün ilerleme durumunu görüntüler.
cmdlet'i Write-Progress
bir durum çubuğu başlığı Activity
, durum satırı ve değişkeni $i
(For döngüsündeki sayaç) içerir ve görevin göreli tamamlanmasını gösterir.
Örnek 2: İç içe For döngülerinin ilerleme durumunu görüntüleme
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
Bu örnekte, her biri bir ilerleme çubuğuyla temsil edilen iki iç içe For döngüsünün ilerleme durumu görüntülenir.
Write-Progress
İkinci ilerleme çubuğunun komutu, bunu ilk ilerleme çubuğundan ayıran Id parametresini içerir.
Id parametresi olmadan ilerleme çubukları birbirinin altında görüntülenmek yerine birbirinin üzerine yerleştirilebilir.
Örnek 3: Dize ararken ilerleme durumunu görüntüleme
# 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
}
Bu komut, Sistem olay günlüğünde "bios" dizesini bulmak için bir komutun ilerleme durumunu görüntüler.
PercentComplete parametre değeri, işlenen $I
olayların sayısı alınan $Events.count
toplam olay sayısına bölünerek ve ardından bu sonuç 100 ile çarpılarak hesaplanır.
Örnek 4: İç içe bir işlemin her düzeyi için ilerleme durumunu görüntüleme
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 -m 150
}
}
}
Step 1
Processing
Step 1 - Substep 2
Processing
Step 1 - Substep 2 - Iteration 3
Processing
Bu örnekte parentid parametresini kullanarak, her adımın ilerlemesindeki üst/alt ilişkileri göstermek için girintili çıktıya sahip olabilirsiniz.
Parametreler
-Activity
Durum çubuğunun üstündeki başlıkta metnin ilk satırını belirtir. Bu metinde ilerleme durumu raporlanan etkinlik açıklanmaktadır.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Completed
İlerleme çubuğunun görünür olup olmadığını gösterir.
Bu parametre atlanırsa ilerleme Write-Progress
bilgilerini görüntüler.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CurrentOperation
İlerleme çubuğunun altındaki metin satırını belirtir. Bu metin, şu anda gerçekleşen işlemi açıklar.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Id
Her ilerleme çubuğunu diğerlerinden ayıran bir kimlik belirtir. Tek bir komutta birden fazla ilerleme çubuğu oluştururken bu parametreyi kullanın. İlerleme çubuklarının farklı kimlikleri yoksa, bunlar bir seride görüntülenmek yerine üst üste eklenir.
Type: | Int32 |
Position: | 2 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ParentId
Geçerli etkinliğin üst etkinliğini belirtir. Geçerli etkinlikte üst etkinlik yoksa -1 değerini kullanın.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PercentComplete
Tamamlanan etkinliğin yüzdesini belirtir. Tamamlanma yüzdesi bilinmiyorsa veya uygulanmıyorsa -1 değerini kullanın.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SecondsRemaining
Etkinlik tamamlanana kadar kalan tahmini saniye sayısını belirtir. Kalan saniye sayısı bilinmiyorsa veya geçerli değilse -1 değerini kullanın.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SourceId
Kaydın kaynağını belirtir. Bunu Kimlik yerine kullanabilirsiniz, ancak ParentId gibi diğer parametrelerle kullanılamaz.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Status
Durum çubuğunun üst kısmındaki başlıkta metnin ikinci satırını belirtir. Bu metin, etkinliğin geçerli durumunu açıklar.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Girişler
None
Bu cmdlet'e giriş kanalı yapamazsınız.
Çıkışlar
None
Write-Progress
herhangi bir çıkış oluşturmaz.
Notlar
İlerleme çubuğu görünmüyorsa değişkenin $ProgressPreference
değerini denetleyin. Değer SilentlyContinue olarak ayarlanırsa ilerleme çubuğu görüntülenmez. PowerShell tercihleri hakkında daha fazla bilgi için bkz. about_Preference_Variables.
Cmdlet'in parametreleri System.Management.Automation.ProgressRecord sınıfının özelliklerine karşılık gelir. Daha fazla bilgi için bkz . ProgressRecord Sınıfı.