Pergunta

Eu tenho um pequeno script Perl (no Windows) que verifica alguns arquivos para mim como uma ajuda para o meu dia-a-dia. No momento em que ele imprime algo como ...

0%
25%
50%
75%
Complete

Mas me lembro de scripts que eu usei no passado que não foi impresso progresso em uma base linha por linha, mas que atualizou a saída na tela, presumivelmente, movendo o cursor para trás e sobre-impressão que estava lá.

Alguém sabe o que magia é necessária? Portabilidade não é importante para mim, o script é bastante descartável.

Foi útil?

Solução

Além das outras respostas, \ r vai voltar para o início da linha atual

Outras dicas

Você pode usar maldições e fazer um bar agradável progresso.

Editar : Ou fazer algo parecido com isto:

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

Se você precisar de fazer alguma coisa em Perl, é muito provável que alguém tenha feito isso e carregou-a CPAN. Olhada em alguns dos módulos com "progresso" em seu nome .

Você pode estar interessado em inteligentes Comentários . Este seria provavelmente mais fácil do que a codificação seus próprios barras de progresso.

Você deve ser capaz de imprimir um caráter backspace '\ b' para mover o cursor de volta para que você possa substituir o que você imprimiu anteriormente.

Eu não sei se isso funciona em Perl, mas em C / C ++ você pode usar

\b
para um retrocesso. Usando vários deles, você pode mover o cursor para substituir valores antigos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top