Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: SuperDraco en 19 Marzo 2011, 18:30 pm



Título: [ Batch ] Barra de progreso en batch... ¿Como?
Publicado por: SuperDraco en 19 Marzo 2011, 18:30 pm
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

(http://www.sigg3.net/users/blog/explore/getimg.php?image=/s3progbar.jpg)

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

(http://img857.imageshack.us/img857/2442/sinttuloir.png)

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
  1. :MP3
  2. IF %ERRORLEVEL% GEQ 1 goto:eof
  3. IF %ERRORLEVEL% EQU 0 (
  4. cls
  5. set /a num+=1
  6. echo+ "%nombre%">> %lista% & echo+
  7. Colous writesec "[7]Convirtiendo el archivo:" & echo+
  8. Colous writesec "[8] %nombre%" & echo+
  9. Colous writesec "[7] Bitrate :[14] %RATE:~0,-5% [7]Kbps"
  10. Colous writesec "[7] Tamano  : %Size:~0,-4% MB"
  11. Colous writesec "[7] Duracion: %Time%"
  12. Colous writesec "[8]================================="
  13. Colous writesec "[7] Nuevo Bitrate: [2]CBR 160 Kbps    [8]|"
  14. Colous writesec "[7] Nuevo Formato: [2]MP3             [8]|"
  15. Colous writesec "[7] Preset:[2] Highest quality (Slow) [8]|"
  16. Colous writesec "[8]__________________________________________________________"
  17. Call :Barloop
  18. (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"
  19. find /v "error" "%temp%\%nombre%.txt" >nul
  20. Call :Error
  21. del /q "%temp%\%nombre%.txt"
  22. sleep 2
  23. goto:eof
  24. )


Y aquí el script de la barra (Bueno, uno de varios que hay en el link que puse más arriba):
Código
  1. :barloop
  2. set "_cooline=Current progress:"
  3. If not defined _pr set _pr=0
  4. If [%2] EQU [] goto :barloop_chk_defpr
  5. set /a _pr=_pr+%2
  6. :barloop_chk_defpr
  7. If [%3] EQU [] goto :barloop_progbar
  8. set _pr=%3
  9. :barloop_progbar
  10. cls&echo %_cooline%&echo.
  11. IF %_pr% EQU 0 (echo [                              ]  0%%
  12. ) ELSE (
  13. IF %_pr% EQU 1 (echo [==^>                           ] 10%%
  14. ) ELSE (
  15. IF %_pr% EQU 2 (echo [=====^>                        ] 20%%
  16. ) ELSE (
  17. IF %_pr% EQU 3 (echo [========^>                     ] 30%%
  18. ) ELSE (
  19. IF %_pr% EQU 4 (echo [===========^>                  ] 40%%
  20. ) ELSE (
  21. IF %_pr% EQU 5 (echo [==============^>               ] 50%%
  22. ) ELSE (
  23. IF %_pr% EQU 6 (echo [=================^>            ] 60%%
  24. ) ELSE (
  25. IF %_pr% EQU 7 (echo [====================^>         ] 70%%
  26. ) ELSE (
  27. IF %_pr% EQU 8 (echo [=======================^>      ] 80%%
  28. ) ELSE (
  29. IF %_pr% EQU 9 (echo [==========================^>   ] 90%%
  30. ) ELSE (
  31. echo [==============================] 100%%
  32. )
  33. )
  34. )
  35. )
  36. )
  37. )
  38. )
  39. )
  40. )
  41. )
  42. )
  43. echo.&set /a _pr=_pr+1
  44. goto %1
  45. echo ERROR: _returnto param wrong or undefined!&PAUSE
  46. REM ## End of THE PROGRESS BAR SUBROUTINE ##


Título: Re: [ Batch ] Barra de progreso en batch... ¿Como?
Publicado por: SuperDraco en 26 Marzo 2011, 11:37 am
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

(http://www.devenezia.com/downloads/ppb/crawl.png)

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.


Título: Re: [ Batch ] Barra de progreso en batch... ¿Como?
Publicado por: xassiz~ en 26 Marzo 2011, 22:21 pm
Código
  1. for /L %%a in (0 1 30) do (
  2. set/p=Û<nul
  3. >nul ping -n 1 127.0.0.1
  4. )
  5.  
:huh:


Título: Re: [ Batch ] Barra de progreso en batch... ¿Como?
Publicado por: SuperDraco en 26 Marzo 2011, 23:51 pm
Hostia! que wapo xDDD, me gusta mucho esa barra!!

Ahora, no se donde meto este comando por ejemplo, para probarlo bien:
Código:
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
  1. @echo off
  2. for /L %%a in (0 1 30) do (
  3. set/p=Û<nul
  4. >nul ping -n 1 127.0.0.1
  5. coreconverter.exe -infile="1.mp3" -outfile="2.mp3" -convert_to="mp3 (Lame)" -b 160 --cbr -encoding="SLOW" -q 0 -noidtag -priority="low"
  6. )

El proceso se repite y se repite sin parar :/

Gracias de todas formas


Título: Re: [ Batch ] Barra de progreso en batch... ¿Como?
Publicado por: SuperDraco en 9 Abril 2011, 23:49 pm
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?


Título: Re: [ Batch ] Barra de progreso en batch... ¿Como?
Publicado por: Rubenprogrammer en 30 Diciembre 2017, 14:26 pm
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