Write-Progress
Exibe uma barra de progresso em uma janela de comando do Windows PowerShell.
Sintaxe
Write-Progress [-Activity] <string> [-Status] <string> [[-Id] <int>] [-Completed] [-CurrentOperation <string>] [-ParentId <int>] [-PercentComplete <int>] [-SecondsRemaining <int>] [-SourceId <int>] [<CommonParameters>]
Descrição
O cmdlet Write-Progress exibe uma barra de progresso em uma janela de comando do Windows PowerShell que descreve o status de um comando ou script em execução. É possível selecionar os indicadores refletidos pela e o texto que aparece acima e abaixo da barra de progresso.
Parâmetros
-Activity <string>
Especifica a primeira linha de texto no título acima da barra de status. Esse texto descreve a atividade cujo progresso está sendo relatado.
Necessário? |
true |
Posição? |
1 |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-Completed
Indica se a barra de progresso é visível. Se esse parâmetro for omitido, Write-Progress exibirá informações de progresso.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-CurrentOperation <string>
Especifica a linha de texto abaixo da barra de progresso. Esse texto descreve a operação em execução no momento.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-Id <int>
Especifica uma ID que distingue cada barra de progresso das outras. Use esse parâmetro ao criar mais de uma barra de progresso em um único comando. Se as barras de progresso não tiverem IDs diferentes, elas serão sobrepostas em vez de serem exibidas em série.
Necessário? |
false |
Posição? |
3 |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-ParentId <int>
Identifica a atividade pai da atividade atual. Use o valor -1 se a atividade atual não tiver atividade pai.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-PercentComplete <int>
Especifica o percentual da atividade que foi concluído. Use o valor -1 se o percentual concluído não for conhecido ou não for aplicável.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-SecondsRemaining <int>
Especifica o número projetado de segundos restantes até que a atividade seja concluída. Use o valor -1 se o número de segundos restantes não for conhecido ou não for aplicável.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-SourceId <int>
Identifica a fonte do registro.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-Status <string>
Especifica a segunda linha de texto no título acima da barra de status. Esse texto descreve o estado atual da atividade.
Necessário? |
true |
Posição? |
2 |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
<CommonParameters>
Esse cmdlet oferece suporte aos parâmetros comuns: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Para obter mais informações, consulte about_Commonparameters.
Entradas e saídas
O tipo de entrada é o tipo dos objetos que você pode canalizar para o cmdlet. O tipo de retorno é o tipo dos objetos que o cmdlet retorna.
Entradas |
Nenhum Você não pode canalizar a entrada para este cmdlet. |
Saídas |
Nenhum Write-Progress não gera saída. |
Observações
Se a barra de progresso não for exibida, verifique o valor da variável $ProgressPreference. Se o valor estiver definido como SilentlyContinue, a barra de progresso não será exibida. Para obter mais informações sobre as preferências do Windows PowerShell, consulte about_Preference_Variables.
Os parâmetros do cmdlet correspondem às propriedades da classe ProgressRecord (System.Management.Automation.ProgressRecord). Para obter mais informações, consulte o tópico ProgressRecord no SDK (Software Development Kit) do Windows PowerShell.
Exemplo 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;}
Descrição
-----------
Esse comando exibe o progresso de dois loops For aninhados. O primeiro loop conta até 100. Para cada incremento daquele loop, o segundo loop conta até 10.000.
O comando Write-Progress inclui um título da barra de status ("activity"), uma linha de status e a variável $i (o contador no loop For), que indica a conclusão relativa da tarefa.
Exemplo 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
Descrição
-----------
Esse exemplo exibe o progresso de dois loops For aninhados, cada um deles representado por uma barra de progresso.
O comando Write-Progress para a segunda barra de progresso inclui o parâmetro Id que o distingue da primeira barra de progresso. Sem o parâmetro Id, as barras de progresso seriam sobrepostas umas sobre as outras, em vez de serem exibidas uma abaixo da outra.
Exemplo 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}
Descrição
-----------
Esse comando exibe o progresso de um comando para localizar a cadeia de caracteres "bios" no log de eventos do sistema.
Na primeira linha do comando, o cmdlet Get-EventLog obtém os eventos no log do sistema e os armazena na variável $events.
Na segunda linha, os eventos são canalizados para o cmdlet ForEach-Object. Antes de iniciar o processamento, o cmdlet Clear-Host é usado para limpar a tela, a variável de contador $i é definida como zero e a variável de saída $out é definida como a cadeia de caracteres vazia.
Na terceira linha, que é o bloco de scripts Process do cmdlet ForEach-Object, o cmdlet pesquisa "bios" na propriedade de mensagem de cada objeto de entrada. Se a cadeia de caracteres for localizada, a mensagem será adicionada a $out.
Na quarta linha, a variável de contador $i é incrementada para registrar que outro evento foi examinado.
A quinta linha usa o cmdlet Write-Progress com valores para os campos de texto Activity e Status que criam a primeira e a segunda linhas do título da barra de progresso, respectivamente. O valor do parâmetro PercentComplete é calculado dividindo o número de eventos processados ($i) pelo número total de eventos recuperados ($events.count) e multiplicando esse resultado por 100.
Na última linha, o parâmetro End do cmdlet ForEach-Object é usado para exibir as mensagens que são armazenadas na variável $out.
Consulte também
Conceitos
Write-Verbose
Write-Error
Write-Host
Write-Debug
Write-Output
Write-Warning