Barre de progrès PowerShell

Barre de progrès PowerShell
Certaines commandes ou opérations prennent du temps à exécuter et jusqu'à l'exécution, ils ne montrent aucun résultat. Une telle situation peut créer un point de réflexion dans la tête de l'utilisateur que la commande fonctionne ou raccroche. Pour surmonter ce problème, une barre de progression peut être utilisée pour obtenir le statut de la commande en cours.

Cet article fournit un guide détaillé pour obtenir une barre de progression sur vos commandes PowerShell. PowerShell prend en charge plusieurs applets de commande et fonctions pour effectuer n'importe quelle tâche. Dans le cas de la barre de progression, la commande d'écriture en écriture de PowerShell est exercée pour atteindre le statut de progrès des commandes. Vous apprendrez les compréhensions de base et le travail de l'attaque en écriture et de ses paramètres pris en charge.

Comment peut être obtenu la barre de progression PowerShell

Comme mentionné précédemment, la barre de progression PowerShell peut être obtenue en utilisant la commande d'écriture en cours d'écriture. La commande d'écriture-Progress de PowerShell fonctionne sur la syntaxe fournie ci-dessous:

> En écriture

La syntaxe ci-dessus dépend de la prise en charge paramétrique et les paramètres pris en charge par les commandes d'écriture-Progress sont définis comme suit:

  • Activité: Ce paramètre permet d'afficher une ligne au-dessus / avant la barre de progression.
  • Complété: Indique la visibilité de la barre de progression.
  • L'opération en cours: Cela montre la ligne après / en dessous de la barre de progression.
  • Statut: Les valeurs transmises dans ce paramètre sont affichées sur la barre de progression.
  • Identifiant: Utilisé pour identifier les barres de progression et cette option est utilisée lorsque plusieurs barres de progrès sont créées.
  • Parentid: Indique une activité parentale de l'activité actuellement en cours.
  • Pourcentage oblevé: Présente la valeur en pourcentage qui montre combien de pour cent d'activité a été terminée.
  • SourceID: Ce paramètre spécifie la source de l'enregistrement et ce paramètre ne peut pas être utilisé avec Parentid car les deux conduisent au même sens.

Comment obtenir PowerShell Progress Bar

La barre de progression de PowerShell fonctionne sur le terrain soutenu par l'écriture-cours. Cette section fournit des exemples qui fournissent une utilisation de l'écriture.

Exemple 1: barre de progression avec boucle foreach
Disons que nous voulons obtenir la barre de progression sur le Processus de spectacle cmdlet. Pour cela, nous créons un script PowerShell où nous rédigerons plusieurs commandes qui aideraient à le faire.

Pour le mode de script, ouvrez le PowerShell ISE en tant qu'administrateur en le recherchant à partir de la barre de recherche de Windows:

Nous avons créé une barre de progression qui montre le processus qui a une valeur de poignées supérieure ou égale à 1000.

Le script est nommé progrès.PS1 et contient les lignes suivantes:

La première ligne filtre les processus qui ont des poignées supérieures ou égales 1000 et la valeur est stockée dans une variable nommée $ proc.

  • La deuxième ligne compte le $ proc et les magasins dans une variable $ total_count (cela aidera à obtenir un pourcentage)
  • Une variable ($ i) est initialisé
  • Foreach Loop a commencé par examiner chaque processus ($ p) Dans la variable $ proc
  • La boucle augmente de 1 après chaque itération
  • pourcentage de $ calcule le pourcentage de processus après chaque itération.
  • La commande d'écriture en cours d'écriture est appliquée avec -Activité et -Statut paramètres
  • Le Commencer à endormir La candidature est utilisée pour obtenir chaque itération après 200 millisecondes.
$ proc = get-process | Where-Object Gandles - GE 1000
$ total_proc = $ proc.Compter
$ i = 0
Foreach ($ p dans $ proc)
$ i = $ i + 1
$ pourcentage = ($ i / $ total_proc) * 100
Écriture-Progress -Activité $ p -status "$ pourcentage%" - pourcentage obligé de $ pourcentage
Début-sommeil -Millisecondes 200

Pour exécuter le script, ouvrez PowerShell et accédez au répertoire où votre script est enregistré. Nous avons exécuté le progrès.PS1 script placé dans le C: \ scripts Le répertoire et la sortie sont illustrés ci-dessous.

> .\progrès.PS1

Exemple 2: Obtenir la barre de progression en utilisant pour Loop
Dans cet exemple. Car la boucle est considérée comme un choix démonstratif pour montrer les progrès. Pour obtenir de l'aide, le script pour.PS1 est utilisé qui contient l'exécution de For Loop avec Cmdlet en cours d'écriture:

  • La variable $ i est initialisé à 100: <$ i = 100>
  • Dans chaque itération, la valeur est diminuée de «1«: <$ i ->
  • La boucle fonctionne jusqu'à ce que la valeur soit supérieure à 10: <$ i -gt 10>
  • Dans le corps de la boucle FOR, l'écriture est appliquée avec l'activité, le statut et le pourcentage de paramètres complets. De plus, le Commencer à endormir La candidature dans le code consiste à exécuter chaque itération avec un écart de 150 millisecondes pour un meilleur aperçu de la barre de progrès.
pour ($ i = 100; $ i -gt 10; $ i--)

Écriture-Progress -Activity "DESCENDING" -STATUS "$ I%" -PERCENTCOMPLETE $ I
Début-sommeil -Millisecondes 150

Pour l'exécution d'un script, naviguez sur votre terminal vers l'emplacement où le script est enregistré. Nous avons exécuté le pour.PS1 Comme on le voit dans l'image ci-dessous:

> .\pour.PS1

Exemple 3: Obtenez la barre de progression en utilisant pendant les boucles
Dans cet exemple, la boucle while est utilisée ici pour obtenir la barre de progression dans PowerShell. Un nouveau script PowerShell est créé avec un nom alors que.PS1 qui contient les lignes de code suivantes avec la description fournie ci-dessous:

  • La première ligne stocke les processus qui ont des processeurs supérieurs ou égaux à 4:
  • La deuxième ligne compte les processus extraits dans la première ligne
  • Le $ i La variable est initialisée à 0:
  • Pendant que la boucle est démarrée et que la condition est réglée sur $ i -Lt 100:
  • Le Activité et Statut Les paramètres sont définis sur Descendant et $ i respectivement:
  • Le Commencer à endormir Cmdlet exécute chaque itération avec un espace de 150 millisecondes:
  • La dernière ligne du code incréments $ i par 1:
$ processes = get-process | Where-object CPU -ge 4
$ Total = $ Processus.Compter
$ i = 0
tandis que ($ i -lt 100)

Écriture-Progress -Activité "ascendant" -status "$ i%" -percentcomplete $ i
Début-sommeil -Millisecondes 150
$ i++

Après avoir exécuté le script, vous observeriez la barre de progression comme indiqué dans l'image ci-dessous:

> .\alors que.PS1

Conclusion

La fonctionnalité de la barre de progression est pratiquée en obtenant l'état de progression de toute tâche. Il est très utile de rechercher le statut de toute tâche car il peut exister des commandes qui prennent du temps pour l'exécution. Pour obtenir une barre de progression, PowerShell soutient la commande d'écriture en écriture. Cet article montre la façon d'ajouter une barre de progression à l'aide de la commande d'écriture en cours d'écriture. La fonctionnalité de la commande d'écriture en cours d'écriture peut être étendue en utilisant l'ensemble des paramètres pris en charge par Write-Progress. De plus, ce guide fournit plusieurs exemples qui démontrent l'utilisation de l'écriture dans divers scénarios.