Partager via


Write-Progress

Affiche une barre de progression dans une fenêtre de commande PowerShell.

Syntaxe

Default (Par défaut)

Write-Progress
    [-Activity] <String>
    [[-Status] <String>]
    [[-Id] <Int32>]
    [-PercentComplete <Int32>]
    [-SecondsRemaining <Int32>]
    [-CurrentOperation <String>]
    [-ParentId <Int32>]
    [-Completed]
    [-SourceId <Int32>]
    [<CommonParameters>]

Description

L’applet de commande Write-Progress affiche une barre de progression dans une fenêtre de commande Windows PowerShell qui représente l’état d’une commande ou d’un script en cours d’exécution. Vous pouvez sélectionner les indicateurs que la barre reflète et le texte qui apparaît au-dessus et au-dessous de la barre de progression.

Exemples

Exemple 1 : Afficher la progression d’une boucle For

for ($i = 1; $i -le 100; $i++ )
{
    Write-Progress -Activity "Search in Progress" -Status "$i% Complete:" -PercentComplete $i;
}

Cette commande affiche la progression d’une boucle For qui compte entre 1 et 100.

L’applet de commande Write-Progress inclut un titre de barre d’état Activity, une ligne d’état et la variable $i (le compteur dans la boucle For), qui indique l’exhaustivité relative de la tâche.

Exemple 2 : Afficher la progression des boucles For imbriquées

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

Cet exemple montre comment afficher la progression de deux boucles For imbriquées, chacune étant représentée par une barre de progression.

La commande Write-Progress de la deuxième barre de progression inclut le paramètre ID qui le distingue de la première barre de progression.

Sans le paramètre ID, les barres de progression sont superposées les unes sur les autres au lieu d’être affichées l’une en dessous de l’autre.

Exemple 3 : Afficher la progression lors de la recherche d’une chaîne

# 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
}

Cette commande affiche la progression d’une commande pour rechercher la chaîne « bios » dans le journal des événements système.

La valeur du paramètre PercentComplete est calculée en divisant le nombre d’événements qui ont été traités par le nombre total d’événements récupérés , puis en multipliant ce résultat par 100.

Paramètres

-Activity

Spécifie la première ligne de texte dans le titre au-dessus de la barre d’état. Ce texte décrit l’activité dont la progression est signalée.

Propriétés du paramètre

Type:String
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:1
Obligatoire:True
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Completed

Indique si la barre de progression est visible. Si ce paramètre est omis, Write-Progress affiche des informations de progression.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-CurrentOperation

Spécifie la ligne de texte sous la barre de progression. Ce texte décrit l’opération en cours.

Propriétés du paramètre

Type:String
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Id

Spécifie un ID qui distingue chaque barre de progression des autres. Utilisez ce paramètre lorsque vous créez plusieurs barres de progression dans une seule commande. Si les barres de progression n’ont pas d’ID différents, elles sont superposées au lieu d’être affichées dans une série.

Propriétés du paramètre

Type:Int32
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:3
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-ParentId

Spécifie l’activité parente de l’activité actuelle. Utilisez la valeur -1 si l’activité actuelle n’a aucune activité parente.

Propriétés du paramètre

Type:Int32
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-PercentComplete

Spécifie le pourcentage de l’activité terminée. Utilisez la valeur -1 si le pourcentage terminé est inconnu ou non applicable.

Propriétés du paramètre

Type:Int32
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-SecondsRemaining

Spécifie le nombre projeté de secondes restant jusqu’à ce que l’activité soit terminée. Utilisez la valeur -1 si le nombre de secondes restant est inconnu ou non applicable.

Propriétés du paramètre

Type:Int32
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-SourceId

Spécifie la source de l’enregistrement.

Propriétés du paramètre

Type:Int32
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Status

Spécifie la deuxième ligne de texte dans le titre au-dessus de la barre d’état. Ce texte décrit l’état actuel de l’activité.

Propriétés du paramètre

Type:String
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:2
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

CommonParameters

Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.

Entrées

None

Vous ne pouvez pas diriger d'entrée vers cette applet de commande.

Sorties

None

Write-Progress ne génère aucune sortie.

Notes

Si la barre de progression n’apparaît pas, vérifiez la valeur de la variable $ProgressPreference. Si la valeur est définie sur SilentlyContinue, la barre de progression n’est pas affichée. Pour plus d’informations sur les préférences Windows PowerShell, consultez about_Preference_Variables.

Les paramètres de l’applet de commande correspondent aux propriétés de la classe System.Management.Automation.ProgressRecord. Pour plus d’informations, consultez classe ProgressRecord dans msdn library.