Write-Progress
PowerShell komut penceresinde ilerleme çubuğu görüntüler.
Sözdizimi
Default EnterprisePublishing
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.
PowerShell 7.2, AnSI kaçış dizilerini kullanarak PowerShell'in belirli bilgileri nasıl görüntülediğini denetlemek için kullanılan $PSStyle otomatik değişkenini ekledi.
$PSStyle.Progress üyesi, ilerleme görünümü çubuğu işlemeyi denetlemenize olanak tanır.
-
$PSStyle.Progress.Style- İşleme stilini ayaran ANSI dizesi. -
$PSStyle.Progress.MaxWidth- Görünümün en büyük genişliğini ayarlar. Varsayılan olarak120değerini alır. En düşük değer 18'dir. -
$PSStyle.Progress.View- değerleri,MinimalveClassiciçeren bir sabit listesi.Classic, değişiklik olmadan var olan işlemedir.Minimaltek satırlı minimal bir görüntülemedir.Minimalvarsayılan değerdir.
$PSStylehakkında daha fazla bilgi için bkz. about_ANSI_Terminals.md.
Uyarı
Konak Sanal Terminal'i desteklemiyorsa, $PSStyle.Progress.View otomatik olarak Classicolarak ayarlanır.
Ö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
$PSStyle.Progress.View = 'Classic'
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 = 'Inner Progress'
PercentComplete = $j
CurrentOperation = 'InnerLoop'
}
Write-Progress @InnerLoopProgressParameters
Start-Sleep -Milliseconds 25
}
}
Updating
Progress ->
[ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo]
OuterLoop
Updating
Inner Progress
[oooooooooooooooooo ]
InnerLoop
Bu örnek, ilerleme görünümünü Classic olarak ayarlar ve her biri bir ilerleme çubuğuyla temsil edilen iki iç içe for döngüsünün ilerleme durumunu görüntüler.
İ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.
Uyarı
Bu örnek, ilerleme durumunu Classicolarak ayarlar. Bu görünüm, her ilerleme çubuğu için CurrentOperation değerlerini görüntüler. İlerleme görünümü Minimalolarak ayarlandığında CurrentOperation değerleri görüntülenmez.
Örnek 3: Dize ararken ilerleme durumunu görüntüleme
# Use Get-WinEvent to get the events in the System log and store them in the $Events variable.
$Events = Get-WinEvent -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
$PSStyle.Progress.View = 'Classic'
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: | 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 |
-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
Classic ilerleme durumu görünümünde ilerleme çubuğunun altındaki metin satırını belirtir. Bu metin, şu anda gerçekleşen işlemi açıklar. İlerleme görünümü Minimalolarak ayarlandığında bu parametrenin hiçbir etkisi olmaz.
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ı.