Вот несколько методов, которые можно использовать для создания индикатора выполнения в PowerShell, а также примеры кода:
-
Использование прогресса записи:
$progress = 0 $total = 100 for ($i = 1; $i -le $total; $i++) { $progress = $i $percentComplete = ($progress / $total) * 100 $status = "Progress: {0}%" -f $percentComplete Write-Progress -Activity "Processing" -Status $status -PercentComplete $percentComplete Start-Sleep -Milliseconds 100 } Write-Progress -Activity "Processing" -Completed -
Использование пользовательской функции индикатора выполнения:
function Show-ProgressBar { param( [int]$PercentComplete ) $width = 50 $completedWidth = ($PercentComplete / 100) * $width $remainingWidth = $width - $completedWidth $completedBar = '-' * $completedWidth $remainingBar = ' ' * $remainingWidth Write-Host -NoNewline "`r[$completedBar$remainingBar] $PercentComplete% Complete" } $total = 100 for ($i = 1; $i -le $total; $i++) { $percentComplete = ($i / $total) * 100 Show-ProgressBar -PercentComplete $percentComplete Start-Sleep -Milliseconds 100 } Show-ProgressBar -PercentComplete 100 Write-Host -
Использование командлета Write-Host:
$width = 50 $total = 100 for ($i = 1; $i -le $total; $i++) { $percentComplete = ($i / $total) * 100 $completedWidth = ($percentComplete / 100) * $width $remainingWidth = $width - $completedWidth $completedBar = '-' * $completedWidth $remainingBar = ' ' * $remainingWidth Write-Host -NoNewline "`r[$completedBar$remainingBar] $percentComplete% Complete" Start-Sleep -Milliseconds 100 } Write-Host