Write-Progress
Muestra una barra de progreso dentro de una ventana de comandos de PowerShell.
Sintaxis
Default (valor predeterminado)
Write-Progress
[-Activity] <String>
[[-Status] <String>]
[[-Id] <Int32>]
[-PercentComplete <Int32>]
[-SecondsRemaining <Int32>]
[-CurrentOperation <String>]
[-ParentId <Int32>]
[-Completed]
[-SourceId <Int32>]
[<CommonParameters>]
Description
El cmdlet Write-Progress muestra una barra de progreso en una ventana de comandos de Windows PowerShell que muestra el estado de un comando o script en ejecución.
Puede seleccionar los indicadores que refleja la barra y el texto que aparece encima y debajo de la barra de progreso.
Ejemplos
Ejemplo 1: Mostrar el progreso de un bucle For
for ($i = 1; $i -le 100; $i++ )
{
Write-Progress -Activity "Search in Progress" -Status "$i% Complete:" -PercentComplete $i;
}
Este comando muestra el progreso de un bucle For que cuenta de 1 a 100.
El cmdlet Write-Progress incluye un encabezado de barra de estado Activity, una línea de estado y la variable $i (el contador del bucle For), que indica la integridad relativa de la tarea.
Ejemplo 2: Mostrar el progreso de los bucles For anidados
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
En este ejemplo se muestra el progreso de dos bucles For anidados, cada uno de los cuales se representa mediante una barra de progreso.
El comando
Sin el parámetro Id, las barras de progreso se superponen entre sí en lugar de mostrarse una debajo de la otra.
Ejemplo 3: Mostrar el progreso al buscar una cadena
# 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 muestra el progreso de un comando para buscar la cadena "bios" en el registro de eventos del sistema.
El valor del parámetro
Parámetros
-Activity
Especifica la primera línea de texto en el encabezado situado encima de la barra de estado. En este texto se describe la actividad cuyo progreso se notifica.
Propiedades de parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | 1 |
| Obligatorio: | True |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Completed
Indica si la barra de progreso está visible.
Si se omite este parámetro, Write-Progress muestra información de progreso.
Propiedades de parámetro
| Tipo: | SwitchParameter |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-CurrentOperation
Especifica la línea de texto debajo de la barra de progreso. En este texto se describe la operación que se está llevando a cabo actualmente.
Propiedades de parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Id
Especifica un identificador que distingue cada barra de progreso de las demás. Use este parámetro cuando cree más de una barra de progreso en un solo comando. Si las barras de progreso no tienen identificadores diferentes, se superponen en lugar de mostrarse en una serie.
Propiedades de parámetro
| Tipo: | Int32 |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | 3 |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-ParentId
Especifica la actividad primaria de la actividad actual. Use el valor -1 si la actividad actual no tiene ninguna actividad primaria.
Propiedades de parámetro
| Tipo: | Int32 |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-PercentComplete
Especifica el porcentaje de la actividad que se completa. Use el valor -1 si el porcentaje completado es desconocido o no aplicable.
Propiedades de parámetro
| Tipo: | Int32 |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-SecondsRemaining
Especifica el número previsto de segundos restantes hasta que se complete la actividad. Use el valor -1 si el número de segundos restantes es desconocido o no aplicable.
Propiedades de parámetro
| Tipo: | Int32 |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-SourceId
Especifica el origen del registro.
Propiedades de parámetro
| Tipo: | Int32 |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | Named |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
-Status
Especifica la segunda línea de texto en el encabezado situado encima de la barra de estado. En este texto se describe el estado actual de la actividad.
Propiedades de parámetro
| Tipo: | String |
| Valor predeterminado: | None |
| Admite caracteres comodín: | False |
| DontShow: | False |
Conjuntos de parámetros
(All)
| Posición: | 2 |
| Obligatorio: | False |
| Valor de la canalización: | False |
| Valor de la canalización por nombre de propiedad: | False |
| Valor de los argumentos restantes: | False |
CommonParameters
Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.
Entradas
None
No se puede canalizar la entrada a este cmdlet.
Salidas
None
Write-Progress no genera ninguna salida.
Notas
Si la barra de progreso no aparece, compruebe el valor de la variable $ProgressPreference. Si el valor se establece en SilentlyContinue, no se muestra la barra de progreso. Para obtener más información sobre las preferencias de Windows PowerShell, consulte about_Preference_Variables.
Los parámetros del cmdlet corresponden a las propiedades de la clase System.Management.Automation.ProgressRecord. Para obtener más información, vea clase ProgressRecord en MSDN Library.