5

日常業務の補助としていくつかのファイルをチェックする小さなPerlスクリプト(Windows上)があります。現時点では、次のようなものが出力されます...

0%
25%
50%
75%
Complete

しかし、過去に使用したスクリプトを覚えています。これは、行ごとに進行状況を印刷しませんでしたが、おそらくカーソルを戻し、そこにあったものをオーバープリントすることによって、ディスプレイの出力を更新しました。

どんな魔法が必要か知っている人はいますか?移植性は私にとって重要ではありません、スクリプトはかなり使い捨てです。

4

6 に答える 6

8

あなたは呪いを使って素晴らしいプログレスバーを作ることができます。

編集:またはこのようなことをします:

print "#####                                 [ 10%]\r";
# Do something
print "##########                            [ 20%]\r";
# Do something else
print "###############                       [ 30%]\r";
# Do some more
# ...
# ...
# ...
print "##################################### [100%]\n";
print "Done.\n";
于 2008-11-10T09:18:15.057 に答える
6

他の回答に加えて、\rは現在の行の先頭に戻ります

于 2008-11-10T09:10:49.440 に答える
6

Perl で何かをする必要がある場合、誰かがそれを実行して CPAN にアップロードした可能性が非常に高いです。名前に「progress」が含まれるモジュールをいくつか見てください。

于 2008-11-10T11:45:39.440 に答える
6

スマート コメントに興味があるかもしれません。これは、独自の進行状況バーをコーディングするよりもおそらく簡単です。

于 2008-11-10T11:48:39.027 に答える
2

以前に印刷したものを上書きできるように、カーソルを後ろに移動するためにバックスペース文字'\b'を印刷できるはずです。

于 2008-11-10T09:05:03.460 に答える
0

これがPerlで機能するかどうかはわかりませんが、C /C++では使用できます

\ b
バックスペース用。それらのいくつかを使用して、カーソルを移動して古い値を上書きできます。

于 2008-11-10T09:06:32.490 に答える