Отображает индикатор выполнения в командном окне Windows PowerShell.
Синтаксис
Write-Progress [-Activity] <string> [-Status] <string> [[-Id] <int>] [-Completed] [-CurrentOperation <string>] [-ParentId <int>] [-PercentComplete <int>] [-SecondsRemaining <int>] [-SourceId <int>] [<CommonParameters>]
Описание
Командлет Write-Progress отображает в командном окне Windows PowerShell индикатор выполнения, который показывает состояние выполнения команды или скрипта. Можно выбирать показатели, отображаемые индикатором, а также текст, который отображается до и после индикатора выполнения.
Параметры
-Activity <string>
Задает первую строку текста в заголовке над индикатором состояния. Этот текст описывает действие, выполнение которого отслеживается.
Обязательно? |
true |
Позиция? |
1 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Completed
Определяет, видим ли индикатор выполнения. Если пропустить этот параметр, командлет Write-Progress отобразит сведения о ходе выполнения.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-CurrentOperation <string>
Задает строку текста, отображаемую под индикатором выполнения. Этот текст описывает текущую операцию.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Id <int>
Задает идентификатор, который позволяет отличать данный индикатор выполнения от других. Используйте этот параметр при создании в одной команде нескольких индикаторов выполнения. Если у индикаторов выполнения не будет различающихся идентификаторов, то они будут накладываться друг на друга, а не отображаться последовательно.
Обязательно? |
false |
Позиция? |
3 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-ParentId <int>
Определяет родительское действие текущего действия. Используйте значение -1, если у текущего действия нет родительского действия.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-PercentComplete <int>
Задает процент выполнения операции. Используйте значение -1, если процент выполнения неизвестен или неприменим.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-SecondsRemaining <int>
Задает предполагаемое число секунд, оставшихся до завершения действия. Используйте значение -1, если оставшееся число секунд неизвестно или неприменимо.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-SourceId <int>
Определяет источник записи.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Status <string>
Задает вторую строку текста в заголовке над индикатором состояния. Этот текст описывает текущее состояние действия.
Обязательно? |
true |
Позиция? |
2 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
<CommonParameters>
Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.
Ввод и вывод
Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.
Входные данные |
Нет Передать входные данные этому командлету по конвейеру невозможно. |
Выходные данные |
Нет Командлет Write-Progress не формирует никакого вывода. |
Примечания
Если индикатор выполнения не появляется, проверьте значение переменной $ProgressPreference. Если она имеет значение SilentlyContinue, индикатор выполнения на экране не отображается. Дополнительные сведения о параметрах Windows PowerShell см. в разделе about_Preference_Variables.
Параметры этого командлета соответствуют свойствам класса ProgressRecord (System.Management.Automation.ProgressRecord). Дополнительные сведения см. в разделе ProgressRecord пакета средств разработки программного обеспечения (SDK) Windows PowerShell.
Пример 1
C:\PS>for ($i = 1; $i -lt 101; $i++ ) {for ($j=0;$j -lt 10000;$j++) {} write-progress -activity "Search in Progress" -status "% Complete:" -percentcomplete $i;} Описание ----------- Эта команда отображает сведения о ходе выполнения двух вложенных циклов For. Число итераций первого цикла равно 100. В рамках каждой итерации этого цикла второй цикл выполняется 10000 раз. Команда Write-Progress включает заголовок панели состояния ("activity"), строку состояния и переменную $i (счетчик цикла For), которая позволяет получить сведения о степени завершенности задания.
Пример 2
C:\PS>for($i = 1; $i -lt 101; $i++ ) {write-progress -activity Updating -status progress-> -percentcomplete $i -currentOperation OuterLoop} for($i = 1; $i -lt 101; $i++ ) {write-progress -activity Updating -status progress -percentcomplete $i -id 1 -currentOperation InnerLoop} Updating progress -> [oooooooooooooooooo ] OutsideLoop Updating progress [oooooooooooooooooo ] InnerLoop Описание ----------- В этом примере показан ход выполнения двух вложенных циклов For, каждый из которых представлен индикатором выполнения. Команда Write-Progress для второго индикатора выполнения включает параметр Id, который позволяет отличать этот индикатор от первого индикатора выполнения. Без параметра Id индикаторы выполнения накладывались бы друг на друга, а не располагались бы один под другим.
Пример 3
C:\PS>$events = get-eventlog -logname system C:\PS> $events | foreach-object -begin {clear-host;$i=0;$out=""} ` -process {if($_.message -like "*bios*") {$out=$out + $_.Message}; $i = $i+1;` write-progress -activity "Searching Events" ` -status "Progress:" -percentcomplete ($i/$events.count*100)} ` -end {$out} Описание ----------- Эта команда отображает сведения о ходе выполнения команды, ищущей строку "bios" в журнале событий "Система". В первой строке команды командлет Get-EventLog получает события из журнала "Система" и сохраняет их в переменной $events. Во второй строке события передаются по конвейеру командлету ForEach-Object. Перед началом обработки командлет Clear-Host очищает экран; переменной-счетчику $i присваивается значение 0, а переменной вывода $out — пустая строка. В третьей строке, которая представляет собой блок скрипта Process командлета ForEach-Object, командлет ищет слово "bios" в свойстве message каждого из объектов на входе. Если такая строка найдена, соответствующее сообщение добавляется в переменную $out. В четвертой строке увеличивается переменная-счетчик $i. Это показывает, что проверено еще одно событие. В пятой строке используется командлет Write-Progress со значениями текстовых полей Activity и Status, которые формируют соответственно первую и вторую строки заголовка индикатора выполнения. Для вычисления значения параметра PercentComplete число обработанных событий ($i) делится на общее число полученных событий ($events.count), а результат умножается на 100. В последней строке параметр End командлета ForEach-Object используется для отображения сообщений, которые были сохранены в переменной $out.
См. также