如何更新Perl命令行应用程序上的进度显示?

izb*_*izb 5 windows perl command-line progress-bar

我有一个小的Perl脚本(在Windows上),它为我检查一些文件,以帮助我的日常业务.目前它打印出类似......的东西

0%
25%
50%
75%
Complete
Run Code Online (Sandbox Code Playgroud)

但我记得我以前用过的脚本并没有逐行打印,而是更新了显示器上的输出,可能是通过移动光标并过度打印那里的内容.

谁知道需要什么魔法?便携性对我来说并不重要,脚本非常易于使用.

dan*_*els 8

你可以使用curses并创建一个很好的进度条.

编辑:或做这样的事情:

print "#####                                 [ 10%]\r";
# Do something
print "##########                            [ 20%]\r";
# Do something else
print "###############                       [ 30%]\r";
# Do some more
# ...
# ...
# ...
print "##################################### [100%]\n";
print "Done.\n";
Run Code Online (Sandbox Code Playgroud)


180*_*ION 6

除了其他答案,\ r \n将返回当前行的开头


bri*_*foy 6

如果您需要在Perl中执行某些操作,很可能有人已经完成并将其上传到CPAN.查看一些名称中包含"进度"的模块.


zou*_*oul 6

您可能对Smart Comments感兴趣.这可能比编码您自己的进度条更容易.