miércoles, 22 de diciembre de 2010

Barras de progreso en Batch

Hola que tal visitantes. Últimamente no he estado escribiendo códigos por falta de tiempo pero de todas formas siempre tengo tiempo para compartir conocimientos.Ahora les va a tocar a las barras de progreso que por cierto no son tan fácil de programar pero aquí les voy a mostrar dos códigos de dos barras de progreso diferentes.Espero que la disfruten y comenten.Este código no es original mio,sino que lo vi en una pagina asi que lo copie y ahora lo comparto para ustedes.



@echo off
rem by Germaniac
setlocal enabledelayedexpansion enableextensions
echo.
echo. Cargando...
echo.
set "bar="
set "percent=0"
set "count=0"
for /l %%i in (1,1,20) do set "bar=!bar!±"
:loop
set /p "= %bar:~0,20% %percent%%%"
ping -n 1 -w 1 localhost>nul
for /l %%i in (1,1,26) do set /p "= "
set "bar=Û%bar%"
set /a "count+=1"
set /a "percent+=5"
if %count% leq 20 goto:loop
echo.
echo.
echo. Done.
pause>nul
exit

y ahora este es el otro código,veran las diferencias de las barras de progreso cuando las ejecuten....



@echo off
rem by Germaniac
SetLocal EnableDelayedExpansion EnableExtensions
Echo.
Echo. Cargando.....
Echo.
Set "bar="
Set "percent=0"
Set "count=0"
For /L %%I In (1,1,20) Do (Set "bar=!bar!±")
:Loop
Set /P "= %bar:~0,20% %percent%%%"
REM en esta linea seteo la variable asdf = al primero numero del comando random (cualquier numero del 1 al 9)
Set "asdf=%Random:~0,1%"
If %asdf% GEQ 8 (
REM acá si la variable asdf es mayor o igual a 8 le resto 4 para que el ping no pase de 5 y así no hace tan larga la carga
Set /A "asdf=asdf-4"
)
REM y acá solo cambio los ping 5 por el lo que contenga la variable asdf
Ping -n %asdf:~0,1% -w %asdf:~0,1% LocalHost>nul
For /L %%I In (1,1,26) Do Set /p "= "
Set "bar=Û%bar%"
Set /a "count+=1"
Set /a "percent+=5"
If %count% LEQ 20 Goto:Loop
Echo.
Echo.
Echo. Cargado.
Pause>Nul 2>&1
Exit