Comment mettre à jour un affichage de progression sur une application de ligne de commande Perl?

StackOverflow https://stackoverflow.com/questions/277384

Question

J'ai un petit script Perl (sous Windows) qui vérifie pour moi certains fichiers afin de m'aider dans mes tâches quotidiennes. Au moment où il imprime quelque chose comme ...

0%
25%
50%
75%
Complete

Mais je me souviens de scripts que j'avais utilisés par le passé et qui n'imprimaient pas la progression ligne par ligne, mais mettaient à jour le résultat affiché, probablement en déplaçant le curseur vers l'arrière et en surimprimant les éléments. était là.

Quelqu'un sait quelle magie est requise? La portabilité n'est pas importante pour moi, le script est assez jetable.

Était-ce utile?

La solution

En plus des autres réponses, \ r reviendra au début de la ligne en cours

Autres conseils

Vous pouvez utiliser curses et faire une belle barre de progression.

MODIFIER : Ou faire quelque chose comme ça:

print "#####                                 [ 10%]\r";
# Do something
print "##########                            [ 20%]\r";
# Do something else
print "###############                       [ 30%]\r";
# Do some more
# ...
# ...
# ...
print "##################################### [100%]\n";
print "Done.\n";

Si vous avez besoin de faire quelque chose en Perl, il est très probable que quelqu'un l’ait fait et l’a chargé sur CPAN. Consultez certains des modules contenant " progrès " en leur nom .

Vous pourriez être intéressé par les Commentaires intelligents . Ce serait probablement plus facile que de coder vos propres barres de progression.

Vous devriez pouvoir imprimer un caractère de retour arrière '\ b' pour déplacer le curseur vers l'arrière afin de pouvoir écraser ce que vous avez imprimé précédemment.

Je ne sais pas si cela fonctionne en Perl, mais en C / C ++, vous pouvez utiliser

\b
pour un retour arrière. En utilisant plusieurs de ces options, vous pouvez déplacer le curseur pour écraser les anciennes valeurs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top