Ir ao conteúdo
  • Cadastre-se

Outro Como Fazer um Indicador de Progresso no CMD(Que não indica uma progressão real)


Posts recomendados

Este é um arquivo Batch Script que apenas mostra um número percentual de progressão na tela, a ideia que tive foi definir a variável "X" como um número, depois eu crio um bloco e defino a variável "Y" como a soma do número que há na variável "X" com 1, depois eu redefino o valor de "X" para ser igual ao valor de "Y". Agora, por que eu botei isso num bloco? É simples, para que eu possa usar o comando Goto "bloco" fazendo com que o cmd leia novamente do inicio do bloco, mas agora "X" está com um novo valor, que será somado novamente à 1, isso se repetirá várias vezes e o valor de "X" e "Y" aumentará indefinidamente. Depois, a ideia é usar o comando If, para limitar quantas somas haverão, assim: o bloco irá somar e ir para a função if que está configurada para quando o valor de "Y" (que é as constantes somas de "X"+1) for igual à 10 ele mostrará a porcentagem e continuará os comandos linha-abaixo, mas caso o valor não seja 10 ele retorne para o bloco, que irá somar novamente, até que este valor seja 10 e o programa continue. Agora com a continuação, basta redefinir "X" para o valor inicial, para que não tenha que usar números cada vez maiores no If (seria como zerar um cronômetro) e criar um novo bloco com um novo nome, para que ele mostre uma porcentagem diferente.

Sim, eu sei que há uma versão disso utilizando o comando ping, mas prefiro do meu jeito porque fica mais personalizável o tempo que irá demorar para a próxima porcentagem aparecer. 

Na hora de fazer com que "Y" seja a soma você deve utilizar "Set /A", para que as variáveis sejam lidas como números e não como símbolos. Seria assim:

(Números) 1+1+1 = 3

(Símbolos) 1+1+1 = 111

 

Não sei se expliquei tudinho, caso qualquer dúvida, eu estarei lendo os comentários diariamente. 

 

@echo off
title Carregando...
color 02



set "X=1"
:1
set /A "Y=%X%+1"
set  "X=%Y%"
If "%Y%" == "500" (cls & echo 10%%) else (goto 1)



set "X=1"
:2
set /A "Y=%X%+1"
set  "X=%Y%"
If "%Y%" == "1500" (cls & echo 25%%) else (goto 2)



set "X=1"
:3
set /A "Y=%X%+1"
set  "X=%Y%"
If "%Y%" == "1500" (cls & echo 35%%) else (goto 3)



set "X=1"
:4
set /A "Y=%X%+1"
set  "X=%Y%"
If "%Y%" == "500" (cls & echo 40%%) else (goto 4)



set "X=1"
:5
set /A "Y=%X%+1"
set  "X=%Y%"
If "%Y%" == "1500" (cls & echo 47%%) else (goto 5)



set "X=1"
:6
set /A "Y=%X%+1"
set  "X=%Y%"
If "%Y%" == "500" (cls & echo 53%%) else (goto 6)



set "X=1"
:7
set /A "Y=%X%+1"
set  "X=%Y%"
If "%Y%" == "1500" (cls & echo 60%%) else (goto 7)



set "X=1"
:8
set /A "Y=%X%+1"
set  "X=%Y%"
If "%Y%" == "700" (cls & echo 79%%) else (goto 8)



set "X=1"
:9
set /A "Y=%X%+1"
set  "X=%Y%"
If "%Y%" == "1500" (cls & echo 89%%) else (goto 9)



set "X=1"
:10
set /A "Y=%X%+1"
set  "X=%Y%"
If "%Y%" == "400" (cls & echo 92%%) else (goto 10)



set "X=1"
:11
set /A "Y=%X%+1"
set  "X=%Y%"
If "%Y%" == "400" (cls & echo 93%%) else (goto 11)



set "X=1"
:12
set /A "Y=%X%+1"
set  "X=%Y%"
If "%Y%" == "400" (cls & echo 94%%) else (goto 12)



set "X=1"
:13
set /A "Y=%X%+1"
set  "X=%Y%"
If "%Y%" == "200" (cls & echo 95%%) else (goto 13)



set "X=1"
:14
set /A "Y=%X%+1"
set  "X=%Y%"
If "%Y%" == "200" (cls & echo 96%%) else (goto 14)


set "X=1"
:15
set /A "Y=%X%+1"
set  "X=%Y%"
If "%Y%" == "200" (cls & echo 98%%) else (goto 15)



set "X=1"
:16
set /A "Y=%X%+1"
set  "X=%Y%"
If "%Y%" == "200" (cls & echo 99%%) else (goto 16)


set "X=1"
:17
set /A "Y=%X%+1"
set  "X=%Y%"
If "%Y%" == "1500" (cls & echo 100%%) else (goto 17)



echo Carregamento concluido
pause >nul

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@ricardo_br Verdade, fica bem melhor, eu não pensei muito em detalhes estéticos na hora, só tinha ficado muito empolgado porque consegui minha própria solução pra fazer um indicador de progresso no CMD, ja que, todo lugar que eu procurava, utilizavam o comando ping para fazer o delay. Eu to pensando aqui, tem um caracter especial que ele é um quadrado bem espesso ( █░▒■□ tipo esses) se usar o comando (chcp 65001), no inicio do programa, ele vai mudar a codificação do texto e esses caracters serão aceitos.

 

 

adicionado 41 minutos depois
41 minutos atrás, Ogato_asmático disse:

@ricardo_br Verdade, fica bem melhor, eu não pensei muito em detalhes estéticos na hora, só tinha ficado muito empolgado porque consegui minha própria solução pra fazer um indicador de progresso no CMD, ja que, todo lugar que eu procurava, utilizavam o comando ping para fazer o delay. Eu to pensando aqui, tem um caracter especial que ele é um quadrado bem espesso ( █░▒■□ tipo esses) se usar o comando (chcp 65001), no inicio do programa, ele vai mudar a codificação do texto e esses caracters serão aceitos.

 

 

Meu deus eu to parecendo um Idoso tentando botar o link do vídeo como resposta. 

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • 5 meses depois...

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...