Write-Progress
PowerShell komut penceresinde ilerleme çubuğu görüntüler.
Syntax
Default (Varsayılan)
Write-Progress
[-Activity] <String>
[[-Status] <String>]
[[-Id] <Int32>]
[-PercentComplete <Int32>]
[-SecondsRemaining <Int32>]
[-CurrentOperation <String>]
[-ParentId <Int32>]
[-Completed]
[-SourceId <Int32>]
[<CommonParameters>]
Description
Write-Progress cmdlet'i, powershell komut penceresinde çalışan bir komut 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
Start-Sleep -Milliseconds 250
}
Bu komut, 1 ile 100 arasında sayan bir for döngüsünün ilerleme durumunu görüntüler.
Write-Progress cmdlet'i Activitybir durum çubuğu başlığı, bir durum satırı ve görevin göreli tamlığını gösteren değişken $i (for döngüsündeki sayaç) içerir.
Örnek 2: İç içe 'for' döngülerinin ilerleme durumunu görüntüleme
for($I = 0; $I -lt 10; $I++ ) {
$OuterLoopProgressParameters = @{
Activity = 'Updating'
Status = 'Progress->'
PercentComplete = $I * 10
CurrentOperation = 'OuterLoop'
}
Write-Progress @OuterLoopProgressParameters
for($j = 1; $j -lt 101; $j++ ) {
$InnerLoopProgressParameters = @{
ID = 1
Activity = 'Updating'
Status = 'Progress'
PercentComplete = $j
CurrentOperation = 'InnerLoop'
}
Write-Progress @InnerLoopProgressParameters
Start-Sleep -Milliseconds 25
}
}
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.
İkinci ilerleme çubuğu için Write-Progress komutu, bunu ilk ilerleme çubuğundan ayıran Kimliği parametresini içerir.
Kimliği parametresi olmadan, ilerleme çubukları birbirinin altında görüntülenmek yerine birbirinin üzerine eklenir.
Ö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 an 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
# Determine the completion percentage
$Completed = ($i/$Events.Count) * 100
# 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 $Completed
} -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 işlenen olayların sayısı $Events.Count alınan toplam olay sayısına bölünerek ve ardından bu sonucu 100 ile çarparak hesaplanır.
Örnek 4: İç içe sürecin 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 -Milliseconds 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 üzere girintili çıktıya sahip olabilirsiniz.
Parametreler
-Activity
Durum çubuğunun üzerindeki başlıkta metnin ilk satırını belirtir. Bu metin, ilerleme durumu bildirilen etkinliği açıklar.
Parametre özellikleri
| Tür: | String |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | 0 |
| Zorunlu: | True |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-Completed
İlerleme çubuğunun görünür olup olmadığını gösterir. Bu parametre atlanırsa, Write-Progress ilerleme bilgilerini görüntüler.
Parametre özellikleri
| Tür: | SwitchParameter |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-CurrentOperation
İlerleme çubuğunun altındaki metin satırını belirtir. Bu metin, şu anda gerçekleşen işlemi açıklar.
Parametre özellikleri
| Tür: | String |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | 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. Negatif değerlere izin verilmez.
Parametre özellikleri
| Tür: | Int32 |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | 2 |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-ParentId
Geçerli etkinliğin üst etkinliğini belirtir. Geçerli etkinlikte üst etkinlik yoksa -1 değerini kullanın.
Parametre özellikleri
| Tür: | Int32 |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-PercentComplete
Tamamlanan etkinliğin yüzdesini belirtir. Tamamlanma yüzdesi bilinmiyorsa veya uygulanmıyorsa -1 değerini kullanın.
Parametre özellikleri
| Tür: | Int32 |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | 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.
Parametre özellikleri
| Tür: | Int32 |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-SourceId
Kaydın kaynağını belirtir. Bunu Kimliği yerine kullanabilirsiniz, ancak ParentIdgibi diğer parametrelerle kullanılamaz.
Parametre özellikleri
| Tür: | Int32 |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | Named |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
-Status
Durum çubuğunun üzerindeki başlıkta metnin ikinci satırını belirtir. Bu metinde etkinliğin geçerli durumu açıklanmaktadır.
Parametre özellikleri
| Tür: | String |
| Default value: | None |
| Joker karakterleri destekler: | False |
| DontShow: | False |
Parametre kümeleri
(All)
| Position: | 1 |
| Zorunlu: | False |
| İşlem hattından gelen değer: | False |
| Özellik adına göre işlem hattından gelen değer: | False |
| Kalan bağımsız değişkenlerden elde edilen değer: | False |
CommonParameters
Bu cmdlet yaygın parametreleri destekler: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction ve -WarningVariable. Daha fazla bilgi için bkz. about_CommonParameters.
Girişler
None
Nesneleri bu cmdlet'e yöneltemezsiniz.
Çıkışlar
None
Bu cmdlet çıkış döndürmez.
Notlar
İlerleme çubuğu görünmüyorsa $ProgressPreference değişkeninin değerini denetleyin. Değer SilentlyContinueolarak 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ı.