Tutoriel : Définir la barre de progression dans le terminal Windows
Le terminal Windows prend en charge les séquences ConEmu « Progress Bar », également connues sous le nom de « OSC 9;4 ». Ces séquences permettent à une application de ligne de commande d'afficher une barre de progression dans la fenêtre du terminal. Ceci est utile pour les commandes à exécution longue, telles que la copie de fichiers volumineux ou le déploiement d'applications.
Dans le Terminal Windows, la barre de progression s'affiche à deux endroits :
- Dans l'en-tête de l'onglet, comme anneau de progression
- Dans la barre des tâches Windows, de la même manière qu'une barre de progression de téléchargement.
Prérequis
- Terminal Windows v1.6 ou version ultérieure.
- Pour l'animation de la barre des tâches, vous devrez vous assurer que « Afficher les animations sous Windows » est activé dans « Paramètres / Facilité d'accès / Affichage ».
Format de séquence de barre de progression
Pour définir la barre de progression, vous devez envoyer la séquence OSC 9;4 au terminal. Cette séquence a le format suivant :
ESC ] 9 ; 4 ; <state> ; <progress> BEL
ESC
est le caractère d'échappement, ASCII 27.BEL
est le caractère de cloche, ASCII 7.<state>
est l'un des0
,1
,2
,3
, ou4
.0
est l'état par défaut et indique que la barre de progression doit être masquée. Utilisez cet état lorsque la commande est terminée pour effacer tout état de progression.1
: définissez la valeur de progression sur<progress>
, dans l'état "par défaut".2
: définir la valeur de progression sur<progress>
, dans l'état "Erreur"3
: mettez la barre des tâches à l'état "Indéterminé". Ceci est utile pour les commandes qui n'ont pas de valeur de progression, mais qui sont toujours en cours d'exécution. Cet état ignore la valeur<progress>
.4
: définissez la valeur de progression sur<progress>
, dans l'état "Avertissement"
<progress>
est un nombre compris entre 0 et 100 inclus.
Exemples
PowerShell
# Set the progress bar to 50%
Write-Host -NoNewline ([char]27 + "]9;4;1;50" + [char]7)
Ou bien, dans PowerShell 7 :
# Set the progress bar to 50%
Write-Host -NoNewline ("`e]9;4;1;50`a")
Bash
# Set the progress bar to 50%
echo -ne "\033]9;4;1;50\a"
C#
// Set the progress bar to 50%
Console.Write("\x1b]9;4;1;50\x07");
Invite de commandes
L'invite de commande est un peu plus délicate, car elle ne prend pas vraiment en charge les séquences d'échappement. Vous pouvez utiliser la commande echo
pour envoyer la séquence d'échappement, mais vous devrez utiliser les caractères ESC et BEL littéraux dans le fichier. Ceux-ci peuvent être affichés sous forme de zones dans le navigateur Web, mais ils devraient fonctionner dans le terminal.
<NUL set /p =]9;4;1;50
echo Started progress (normal, 50)
L'exemple ci-dessus utilise le périphérique NUL
pour écrire la séquence d'échappement sur la console sans nouvelle ligne.
Remarque : vous ne voyez pas votre interpréteur de commandes favori ici ? Dans ce cas, n’hésitez pas à contribuer à l’ajout d’une solution d’une solution pour l’interpréteur de commandes de votre choix !
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour