我有一个小的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";
我不知道这在Perl中是否有效,但在C/C++中,您可以使用
\b来进行退格。使用多个这样的字符,您可以将光标移动到覆盖旧值的位置。
\r
之前调用binmode(STDOUT)
才能按照您想要的方式工作。 - Brad Gilbert