Partager via


Write-Progress

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

Syntaxe

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

Description

L'applet de commande Write-Progress affiche une barre de progression dans une fenêtre de commande Windows PowerShell qui indique 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 en dessous de la barre de progression.

Paramètres

-Activity <string>

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

Obligatoire ?

true

Position ?

1

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-Completed

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

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-CurrentOperation <string>

Spécifie la ligne de texte en dessous de la barre de progression. Ce texte décrit l'opération qui se déroule actuellement.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-Id <int>

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 commande simple. Si les barres de progression n'ont pas des ID différents, elles sont superposées au lieu d'être affichées les unes à la suite des autres.

Obligatoire ?

false

Position ?

3

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-ParentId <int>

Identifie l'activité parente de l'activité actuelle. Utilisez la valeur -1 si l'activité actuelle n'a aucune activité parente.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-PercentComplete <int>

Spécifie le pourcentage de l'activité qui est exécutée. Utilisez la valeur -1 si le pourcentage d'exécution est inconnu ou non applicable.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-SecondsRemaining <int>

Spécifie le nombre estimatif 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.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-SourceId <int>

Identifie la source de l'enregistrement.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-Status <string>

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

Obligatoire ?

true

Position ?

2

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

<CommonParameters>

Cette applet de commande prend en charge les paramètres courants : -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer et -OutVariable. Pour plus d'informations, consultez about_Commonparameters.

Entrées et sorties

Le type d'entrée est le type des objets que vous pouvez diriger vers l'applet de commande. Le type de retour est le type des objets que l'applet de commande retourne.

Entrées

Aucun

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

Sorties

Aucun

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

Remarques

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 ProgressRecord (System.Management.Automation.ProgressRecord). Pour plus d'informations, consultez la rubrique ProgressRecord du Kit de développement logiciel (SDK) Windows PowerShell.

Exemple 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;}

Description
-----------
Cette commande affiche la progression de deux boucles For imbriquées. La première boucle compte jusqu'à 100. Pour chaque incrément de cette boucle, la deuxième boucle compte jusqu'à 10 000.
La commande Write-Progress inclut un titre de barre d'état (« activity »), une ligne d'état et la variable $i (le compteur de la boucle For), ce qui indique l'état complet relatif de la tâche.





Exemple 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

Description
-----------
Cet exemple affiche 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 la distingue de la première barre de progression. Sans ce paramètre Id, les barres de progression se superposeraient au lieu de s'afficher l'une au-dessous de l'autre.





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

Description
-----------
Cette commande affiche la progression d'une commande visant à rechercher la chaîne « bios » dans le journal des événements système. 

Dans la première ligne de la commande, l'applet de commande Get-EventLog obtient les événements du journal système et les stocke dans la variable $events. 

Dans la deuxième ligne, les événements sont dirigés vers l'applet de commande ForEach-Object. Avant que le traitement ne commence, l'applet de commande Clear-Host est utilisée pour effacer l'écran, la variable de compteur $i a la valeur zéro et la valeur de la variable de sortie $out est la chaîne vide. 


Dans la troisième ligne, qui est le bloc de script Process de l'applet de commande ForEach-Object, l'applet de commande recherche « bios » dans la propriété de message de chaque objet entrant. Si la chaîne est trouvée, le message est ajouté à $out. 

Dans la quatrième ligne, la variable de compteur $i est incrémentée pour indiquer qu'un autre événement a été examiné. 

La cinquième ligne utilise l'applet de commande Write-Progress avec des valeurs pour les champs de texte Activity et Status qui créent respectivement la première et la deuxième lignes du titre de la barre de progression. La valeur du paramètre PercentComplete est calculée en divisant le nombre des événements traités ($i) par le nombre total d'événements récupérés ($events.count), puis en multipliant le résultat obtenu par 100. 

Dans la dernière ligne, le paramètre End de l'applet de commande ForEach-Object est utilisé pour afficher les messages stockés dans la variable $out.





Voir aussi

Concepts

Write-Verbose
Write-Error
Write-Host
Write-Debug
Write-Output
Write-Warning