Powershell – Petite astuce

Il est assez simple d’enrichir un tableau d’objets en y ajoutant une colonne personnalisée.

Etape 1:

Là on est venu greffer une nouvelle colonne ‘Column Name’ à la sortie de Get-Process. Résultat :

Etape 2 :

On va mettre un peu de dynamique dans tout ça et mettre une colonne personnalisée ‘Progress’ affichant une valeur entre 1 et 100, comme pour un pourcentage.

C’est déjà plus sympatique.

Etape 3 :

C’est ici que la magie opère. Souvenez vous que l’expression ( ;e={…}  ) qui définit la valeur de la colonne est censée renvoyer un text, n’importe lequel. Et si j’avais envie que cette colonne m’affiche un pourcentage mais sous une forme plus graphique. Par exemple, au lieu de 68%, on afficherait “68% [ooooooo   ]”, un peu comme une barre de progression. Eh bien, c’est exactement ce que fait la petite fonction que je vous offre aujourd’hui. Tout d’abord, le résultat en image :

Plutôt sympa, non ? Voici le code complet :

La fonction Draw-Percent a trois paramètres :

  • Value : valeur du pourcentage à afficher (entre 0 et 100)
  • Index : facultatif. Définit quel symbole (à choisir parmi o, #, ■, |, -, *)  sera utilisé pour dessiné la barre de progression. Par défaut, c’est le petit carré ■.
  • Width : facultatif. Définit la largeur (en nombre de caractère) de la barre de progression. Par défaut, la taille est de 10 car mais vous pouvez l’élargir si nécessaire.

J’espère que cette petite astuce vous aura plu. Amusez vous bien 🙂

Mise à jour :

Exemple pratique : Get disk Used Space

 

PowerShell – Barre de progression

Il y a quelques années, lors d’une migration Exchange, j’ai du réimporté une base de 40 000 contacts dans l’annuaire depuis un fichier CSV. Je peux vous dire que ça prend un certain temps et qu’il peut être particulièrement frustrant de ne pas savoir ou on en est. C’est dans ce genre de situation que l’affichage d’une barre de progression présente tout son intérêt.

La mise en oeuvre en est assez simple comme le prouve le petit exemple qui suit :

La progression de la barre est controlée par le paramètre PercentComplete  qui varie évidemment de 1 à 100. Le paramètre Activity permet de donner un titre à la progression et Status permet de définir un message qui peu varier au fur et à mesure de la progression. Nous avons du mettre un petit temps d’attente de 100ms (Sleep -m 100) pour simuler l’exécution d’un traitement.