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