[ Batch ] Barra de progreso en batch... ¿Como?

Iniciado por SuperDraco, 19 Marzo 2011, 18:30 PM

0 Miembros y 1 Visitante están viendo este tema.

SuperDraco

Hola... se que soy un pesado xDDD pero ya me gustaría saber tanto como vosotros, así no molestaría :P, en fin, como siempre vuelvo a necesitar ayuda con mis cosas...

Hace dos dias empezé a buscar "progress bar" para el cmd, y la que más me agustado ha sido esta:

http://sigg3.net/blogger/progbar_sub.rar



El caso es que me gustaría meterla en mi script, en el espacio grande que queda en esta ventanita, miren:



Ahora viene lo malo... NO SE COMO HACERLO XD... Bueno, más o menos he conseguido algo, la barra de progreso dice el autor que hay que llamarla con un "Call", así que yo hago eso... pero al ejecutarse el "call", la barra de progreso TAPA todo lo que hay en la imagen de mi script, osea, sale arriba, no abajo.

He intentado modificar el script del autor, poniendole muchos "echo+" a ver si así aparecía un poco más abajo en mi script, pero no ha dado resultados... Así que a ver si alguien sabe la solución :/

Esta es la parte de mi script en donde quiero meter la barra:


Código (dos) [Seleccionar]
:MP3
IF %ERRORLEVEL% GEQ 1 goto:eof
IF %ERRORLEVEL% EQU 0 (
cls
set /a num+=1
echo+ "%nombre%">> %lista% & echo+
Colous writesec "[7]Convirtiendo el archivo:" & echo+
Colous writesec "[8] %nombre%" & echo+
Colous writesec "[7] Bitrate :[14] %RATE:~0,-5% [7]Kbps"
Colous writesec "[7] Tamano  : %Size:~0,-4% MB"
Colous writesec "[7] Duracion: %Time%"
Colous writesec "[8]================================="
Colous writesec "[7] Nuevo Bitrate: [2]CBR 160 Kbps    [8]|"
Colous writesec "[7] Nuevo Formato: [2]MP3             [8]|"
Colous writesec "[7] Preset:[2] Highest quality (Slow) [8]|"
Colous writesec "[8]__________________________________________________________"
Call :Barloop
(AQUI IRIA LA BARRA DE PROGRESO PARA USARSE CON ESTE COMANDO >> ) coreconverter.exe -silent -infile="%nombre%" -outfile="%nombre%" -convert_to="mp3 (Lame)" -b 160 --cbr -encoding="SLOW" -q 0 -noidtag -priority="low" -errorfile="%temp%\%nombre%.txt"
find /v "error" "%temp%\%nombre%.txt" >nul
Call :Error
del /q "%temp%\%nombre%.txt"
sleep 2
goto:eof
)



Y aquí el script de la barra (Bueno, uno de varios que hay en el link que puse más arriba):
Código (dos) [Seleccionar]

:barloop
set "_cooline=Current progress:"
If not defined _pr set _pr=0
If [%2] EQU [] goto :barloop_chk_defpr
set /a _pr=_pr+%2
:barloop_chk_defpr
If [%3] EQU [] goto :barloop_progbar
set _pr=%3
:barloop_progbar
cls&echo %_cooline%&echo.
IF %_pr% EQU 0 (echo [                              ]  0%%
) ELSE (
IF %_pr% EQU 1 (echo [==^>                           ] 10%%
) ELSE (
IF %_pr% EQU 2 (echo [=====^>                        ] 20%%
) ELSE (
IF %_pr% EQU 3 (echo [========^>                     ] 30%%
) ELSE (
IF %_pr% EQU 4 (echo [===========^>                  ] 40%%
) ELSE (
IF %_pr% EQU 5 (echo [==============^>               ] 50%%
) ELSE (
IF %_pr% EQU 6 (echo [=================^>            ] 60%%
) ELSE (
IF %_pr% EQU 7 (echo [====================^>         ] 70%%
) ELSE (
IF %_pr% EQU 8 (echo [=======================^>      ] 80%%
) ELSE (
IF %_pr% EQU 9 (echo [==========================^>   ] 90%%
) ELSE (
echo [==============================] 100%%
)
)
)
)
)
)
)
)
)
)
)
echo.&set /a _pr=_pr+1
goto %1
echo ERROR: _returnto param wrong or undefined!&PAUSE
REM ## End of THE PROGRESS BAR SUBROUTINE ##
No he vuelto, solo estoy de paso.

SuperDraco

Nadie sabe nada al respecto? :/

Como todos los que usamos batch sabemos, hay infinidad de utilidades de terceros, como el sed, el colous.exe, sleep.exe, nircmd.exe...

Entonces, a mi lo que se me ha ocurrido es que debe haber alguna  "Progressbar.exe" que sea utilizable dentro de un script, he! y mas o menos no me equivocaba! existe ppbs.exe

http://www.devenezia.com/downloads/ppb/index.html



El problema es que sale la ventanita esa fuera del script, claro, no esta echo para usarlo dentro del CMD... :( además, me da ciertos errores al intentar utilizarlo...

De momento, seguire buscando utilidades externas parecidas a esa, pero para usar dentro de la linea de comandos.

Saludos a todos.
No he vuelto, solo estoy de paso.

xassiz~

Código (dos) [Seleccionar]

for /L %%a in (0 1 30) do (
set/p=Û<nul
>nul ping -n 1 127.0.0.1
)

:huh:

SuperDraco

#3
Hostia! que wapo xDDD, me gusta mucho esa barra!!

Ahora, no se donde meto este comando por ejemplo, para probarlo bien:
xcopy /E /Y "c:\windows" "C:\pruebaa\" >nul


Porfavor no me dejes a medias! Como puedo utilizar esa barrita en mi script? xD

Tengo que llamarla desde un CALL? O me sirve pegandola directamente donde yo desee?

Necesito usarla con el comando que dije, el de "coreconverter"...
saludosss



EDITO:

@echo off
for /L %%a in (0 1 30) do (
   xcopy /E /Y "c:\windows" "C:\pruebaa\">nul
   set/p=Û<nul
   >nul ping -n 1 127.0.0.1
)

Eso por ejemplo no me funciona, no me sale la barra xD, tampoco se lo que significan el 0, el 1, y el 30...


Nada, ya me habia vuelto a hacer ilusiones yo solo :(

Es cronologica, no me funciona...


Código (dos) [Seleccionar]
@echo off
for /L %%a in (0 1 30) do (
set/p=Û<nul
>nul ping -n 1 127.0.0.1
coreconverter.exe -infile="1.mp3" -outfile="2.mp3" -convert_to="mp3 (Lame)" -b 160 --cbr -encoding="SLOW" -q 0 -noidtag -priority="low"
)


El proceso se repite y se repite sin parar :/

Gracias de todas formas
No he vuelto, solo estoy de paso.

SuperDraco

#4
up!

:rolleyes:




EDITO:

Quizás con cygwin se podría hacer un programa que solo fuese una barra de progreso y utilizarla dentro de batch, repito, dentro de la ventana del CMD, para el comando que yo quisiera?

¿Alguien sabe si es posible? y que herramientas de cygwin necesitaria? (Sobretodo para poder ejecutar el programa de cygwin desde un bat de windows que neecsito?)

Por cierto,en cygwinhay que escribir con python o es bash?
No he vuelto, solo estoy de paso.

Rubenprogrammer

Has probado poniendola con un medidor de tiempo?

@echo off
cls
echo =
timeout /t 1 /nobreak>nul
cls
echo ==
timeout /t 1 /nobreak>nul
cls
echo ===

Y asi hasta cuando quieras