我有一个小的 Perl 脚本(在 Windows 上),它可以帮我检查一些文件,以帮助我完成日常业务。目前它打印出类似...
0%
25%
50%
75%
Complete
但我记得我过去使用的脚本不是逐行打印进度,而是更新了显示器上的输出,大概是通过将光标移回并重叠打印那里的内容。
有谁知道需要什么魔法吗?可移植性对我来说并不重要,脚本是一次性的。
我有一个小的 Perl 脚本(在 Windows 上),它可以帮我检查一些文件,以帮助我完成日常业务。目前它打印出类似...
0%
25%
50%
75%
Complete
但我记得我过去使用的脚本不是逐行打印进度,而是更新了显示器上的输出,大概是通过将光标移回并重叠打印那里的内容。
有谁知道需要什么魔法吗?可移植性对我来说并不重要,脚本是一次性的。
您可以使用诅咒并制作一个不错的进度条。
编辑:或者做这样的事情:
print "##### [ 10%]\r";
# Do something
print "########## [ 20%]\r";
# Do something else
print "############### [ 30%]\r";
# Do some more
# ...
# ...
# ...
print "##################################### [100%]\n";
print "Done.\n";
除了其他答案, \r 将回到当前行的开头
如果您需要在 Perl 中做某事,很可能有人已经完成并将其上传到 CPAN。查看一些名称中带有“progress”的模块。
您可能对智能评论感兴趣。这可能比编写自己的进度条更容易。
您应该能够打印退格字符 '\b' 以将光标向后移动,这样您就可以覆盖之前打印的内容。
我不知道这是否适用于 Perl,但在 C/C++ 中你可以使用
\b退格。使用其中的几个,您可以移动光标以覆盖旧值。