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ı.