Поиск…


Вступление

Индикатор выполнения может использоваться, чтобы показать, что что-то находится в процессе. Это функция экономии времени и слайка, которую нужно иметь. Полосы прогресса невероятно полезны при отладке, чтобы выяснить, какая часть скрипта выполняется, и они удовлетворяют для людей, выполняющих скрипты, отслеживать, что происходит. Обычно для отображения какого-то прогресса, когда сценарий занимает много времени для завершения. Когда пользователь запускает скрипт, и ничего не происходит, возникает вопрос, правильно ли запущен скрипт.

Простое использование индикатора выполнения

1..100 | ForEach-Object {
        Write-Progress -Activity "Copying files" -Status "$_ %" -Id 1 -PercentComplete $_ -CurrentOperation "Copying file file_name_$_.txt"
        Start-Sleep -Milliseconds 500    # sleep simulates working code, replace this line with your executive code (i.e. file copying)
    }

Обратите внимание, что для краткости этот пример не содержит исполнительного кода (моделируется с помощью Start-Sleep ). Однако можно запускать его напрямую, как есть, а затем модифицировать и играть с ним.

Вот как выглядит результат в консоли PS: Одиночный индикатор выполнения консоли Powershell

Вот как выглядит результат в PS ISE: Powershell ISE единый индикатор выполнения

Использование внутреннего индикатора выполнения

1..10 | foreach-object {
        $fileName = "file_name_$_.txt"
        Write-Progress -Activity "Copying files" -Status "$($_*10) %" -Id 1 -PercentComplete ($_*10) -CurrentOperation "Copying file $fileName"
            
        1..100 | foreach-object {
            Write-Progress -Activity "Copying contents of the file $fileName" -Status "$_ %" -Id 2 -ParentId 1 -PercentComplete $_ -CurrentOperation "Copying $_. line"
            
            Start-Sleep -Milliseconds 20 # sleep simulates working code, replace this line with your executive code (i.e. file copying)
        }

        Start-Sleep -Milliseconds 500 # sleep simulates working code, replace this line with your executive code (i.e. file search)

   }

Обратите внимание, что для краткости этот пример не содержит исполнительного кода (моделируется с помощью Start-Sleep ). Однако можно запускать его напрямую, как есть, а затем модифицировать и играть с ним.

Вот как выглядит результат в консоли PS: Внутренний индикатор выполнения консоли Powershell

Вот как выглядит результат в PS ISE: Внутренняя полоса прогресса ISA Powershell



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow