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