Write-Progress
Exibe uma barra de progresso em uma janela de comando do PowerShell.
Sintaxe
Default (Predefinição)
Write-Progress
[-Activity] <String>
[[-Status] <String>]
[[-Id] <Int32>]
[-PercentComplete <Int32>]
[-SecondsRemaining <Int32>]
[-CurrentOperation <String>]
[-ParentId <Int32>]
[-Completed]
[-SourceId <Int32>]
[<CommonParameters>]
Description
O cmdlet Write-Progress exibe uma barra de progresso em uma janela de comando do Windows PowerShell que mostra o status de um comando ou script em execução.
Você pode selecionar os indicadores que a barra reflete e o texto que aparece acima e abaixo da barra de progresso.
Exemplos
Exemplo 1: Exibir o progresso de um loop For
for ($i = 1; $i -le 100; $i++ )
{
Write-Progress -Activity "Search in Progress" -Status "$i% Complete:" -PercentComplete $i;
}
Este comando exibe o progresso de um loop For que conta de 1 a 100.
O cmdlet Write-Progress inclui um título de barra de status Activity, uma linha de status e a variável $i (o contador no loop For), que indica a integridade relativa da tarefa.
Exemplo 2: Exibir o progresso dos loops For aninhados
for($I = 1; $I -lt 101; $I++ )
{
Write-Progress -Activity Updating -Status 'Progress->' -PercentComplete $I -CurrentOperation OuterLoop
for($j = 1; $j -lt 101; $j++ )
{
Write-Progress -Id 1 -Activity Updating -Status 'Progress' -PercentComplete $j -CurrentOperation InnerLoop
}
}
Updating
Progress ->
[ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo]
OuterLoop
Updating
Progress
[oooooooooooooooooo ]
InnerLoop
Este exemplo exibe o progresso de dois loops For aninhados, cada um representado por uma barra de progresso.
O comando Write-Progress para a segunda barra de progresso inclui o parâmetro Id que a distingue da primeira barra de progresso.
Sem o parâmetro Id, as barras de progresso seriam sobrepostas umas às outras em vez de serem exibidas uma abaixo da outra.
Exemplo 3: Exibir o progresso ao procurar uma cadeia de caracteres
# Use Get-EventLog to get the events in the System log and store them in the $Events variable.
$Events = Get-EventLog -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 a 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
# 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 ($i/$Events.count*100)
} -End {
# Display the matching messages using the out variable.
$out
}
Este comando exibe o progresso de um comando para localizar a string "bios" no log de eventos do sistema.
O valor do parâmetro PercentComplete é calculado dividindo o número de eventos que foram processados $I pelo número total de eventos recuperados $Events.count e, em seguida, multiplicando esse resultado por 100.
Parâmetros
-Activity
Especifica a primeira linha de texto no título acima da barra de status. Este texto descreve a atividade cujo progresso está sendo relatado.
Propriedades dos parâmetros
| Tipo: | String |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | 1 |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-Completed
Indica se a barra de progresso está visível.
Se esse parâmetro for omitido, Write-Progress exibirá informações de progresso.
Propriedades dos parâmetros
| Tipo: | SwitchParameter |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-CurrentOperation
Especifica a linha de texto abaixo da barra de progresso. Este texto descreve a operação que está a decorrer atualmente.
Propriedades dos parâmetros
| Tipo: | String |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-Id
Especifica uma ID que distingue cada barra de progresso das outras. Use esse parâmetro quando estiver criando 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 uma série.
Propriedades dos parâmetros
| Tipo: | Int32 |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | 3 |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-ParentId
Especifica a atividade pai da atividade atual. Use o valor -1 se a atividade atual não tiver atividade pai.
Propriedades dos parâmetros
| Tipo: | Int32 |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-PercentComplete
Especifica a porcentagem da atividade que é concluída. Use o valor -1 se a porcentagem concluída for desconhecida ou não aplicável.
Propriedades dos parâmetros
| Tipo: | Int32 |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-SecondsRemaining
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 for desconhecido ou não aplicável.
Propriedades dos parâmetros
| Tipo: | Int32 |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-SourceId
Especifica a origem do registro.
Propriedades dos parâmetros
| Tipo: | Int32 |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-Status
Especifica a segunda linha de texto no título acima da barra de status. Este texto descreve o estado atual da atividade.
Propriedades dos parâmetros
| Tipo: | String |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | 2 |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
CommonParameters
Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.
Entradas
None
Não é possível canalizar a entrada para este cmdlet.
Saídas
None
Write-Progress não gera nenhuma saída.
Notas
Se a barra de progresso não aparecer, 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 System.Management.Automation.ProgressRecord