Autor
|
Tema: Barra de progreso [Batch] (Leído 17,020 veces)
|
Nilrac
Desconectado
Mensajes: 109
|
Hola ! Encontre este code que me parece excelente para una barra de progreso en batch. @echo off
SetLocal EnableDelayedExpansion EnableExtensions Echo. Echo. Loading... 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%%%"<Nul 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 "="<Nul Set "bar=Û%bar%" Set /a "count+=1" Set /a "percent+=5" If %count% LEQ 20 Goto:Loop Echo. Echo. Echo. Done. Pause>Nul 2>&1 Exit Lo unico es que no entiendo, es como colocar mi codigo y que acabe al par de la barra de progreso Gracias
|
|
|
En línea
|
|
|
|
FerJGS
Desconectado
Mensajes: 75
|
Es fácil, simplemente tienes que poner la parte del código que quieres mostrar antes de cada porcentaje antes del ping.
|
|
|
En línea
|
|
|
|
Nilrac
Desconectado
Mensajes: 109
|
Pues como lo dices no me funciona , Al principio marca la barra y el 0% pero no avanza , mas sin embargo, el codigo si funciona
|
|
|
En línea
|
|
|
|
FranciskoAsdf
Desconectado
Mensajes: 231
Ni bueno, ni malo. Solo nada.
|
Te Explico un poco el uso de la barra de carga: Por Ejemplo con un code como el siguiente funcionaria: SetLocal EnableDelayedExpansion EnableExtensions :BarraDeCarga :Loop Set /P "= %bar:~0,20% %percent%%%" <Nul REM en esta linea seteo la variable asdf = al primero numero del comando random (cualquier numero del 1 al 9) 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 ) 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
Ahora: El texto "SetLocal EnableDelayedExpansion EnableExtensions", debes colocarlo al principio de TU codigo, despues de @Echo Off.- Le Colocas una etiqueta a la funcion (la barra de carga) o puedes dejarlo como esta en el ejemplo (supongo que sabes lo que es una etiqueta xD).- La etiqueta y todo lo que esta debajo de la etiqueta :BarraDeCarga hasta Goto:Eof colocalo al final de tu codigo para que no te moleste.- Despues la puedes ir llamando cada vez que quieras por ejemplo: SetLocal EnableDelayedExpansion EnableExtensions Echo. Set /P "nombre=Escribe Tu nombre : " Echo.Analizando Nombre espera.... Tu Nombre Es %nombre%.- Echo. Set /P "apellido=Escribe Tu nombre : " Echo.Analizando Apellido espera.... REM Aca va el codigo de la barra de carga... :BarraDeCarga :Loop Set /P "= %bar:~0,20% %percent%%%" <Nul REM en esta linea seteo la variable asdf = al primero numero del comando random (cualquier numero del 1 al 9) 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 ) 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
Y así, se entiende verdad xDDDD?!, no es necesario que coloques todo el codigo cada vez que lo quieras usar, solo basta con llamarlo cada vez que lo necesites =).- Bueno espero que sí, cualquier duda consultas !!!
|
|
« Última modificación: 27 Julio 2010, 18:23 pm por Panxin.boo »
|
En línea
|
Asdf debería ser algún tipo de función.
|
|
|
Nilrac
Desconectado
Mensajes: 109
|
Claro como el agua amigo.
Creí que se usaba de forma global en todo el code.
Gracias.
|
|
|
En línea
|
|
|
|
Operators
Desconectado
Mensajes: 2
|
Muy Buenas Noches
Tengo una duda del código mostrado en la siguiente linea:
For /L %%I In (1,1,26) Do Set /p "="<Nul
Luego del Igual ( = ) y antes de la segunda comillas doble ( " ), existe un signo que desconozco, este se ve mejor cuando se copia esa linea en bloc de notas, si me podrían explicar su función y como sacarlo por favor,
Muchas Gracias de Antemano,
Nota: El resto del código esta excelente, un gran ejemplo que al menos a mi no se me hubiese ocurrido, gracias por el aporte.
|
|
|
En línea
|
|
|
|
_TTFH_3500
Desconectado
Mensajes: 123
|
Tengo una duda del código mostrado en la siguiente linea:
For /L %%I In (1,1,26) Do Set /p "="<Nul
Luego del Igual ( = ) y antes de la segunda comillas doble ( " ), existe un signo que desconozco, este se ve mejor cuando se copia esa linea en bloc de notas, si me podrían explicar su función y como sacarlo por favor ¿Te refieres al circulo blanco dentro de un rectángulo vertical negro?, ese es el carácter de retroceso: Binario Decimal Hex Abreviatura Repr AT Nombre 0000 1000 8 08 BS ␈ ^H Retroceso/Backspace Es decir la tecla '<--' que esta encima de 'ENTER', en este caso sirve para que se muestre en solo una linea la barra de carga, sino se vería así: Loading... ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ 0%█▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ 5%██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ 10%███▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒ 15%████▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ 20% En lugar de así: Loading... ██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ 10% Edito: puede que me equivoque porque en teoría al presionar Alt+8 ◘ debería aparecer el mismo carácter, pero en Notepad++ aparece con el icono de |BS|, ahora bien la funcionalidad si es esa.
|
|
« Última modificación: 12 Enero 2016, 14:12 pm por _TTFH_3500 »
|
En línea
|
|
|
|
Operators
Desconectado
Mensajes: 2
|
Hola, Muchisimas gracias por responder, ahora me queda mas claro, no me salio el símbolo en bloc de notas pero si en Notepad++, lo único que ahora me quedo con la duda si habrá un lugar o manual donde expliquen estos símbolos porque no los conocía, y en los lugares donde he leído ( inclusive en el foro ) no me había topado con ellos, o lo mejor no he buscado muy bien en el foro. Te agradezco nuevamente por compartir de tus conocimientos y apoyo, he aprendido varias cosas que he aplicado en mi trabajo y me ha ido bien.
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.866
|
1. Está prohibido revivir posts antiguos, puedes publicar una nuevo post para formular tus preguntas si lo deseas y poner enlaces a este u otros hilos para referencias su contenido... 2. Respecto a la primera pregunta que hiciste, es el caracter del backspace (BS): 3. Respecto a la última pregunta, aquí puedes encontrar los caracteres de bloques unicode: Tema cerrado.Saludos!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
barra de progreso
.NET (C#, VB.NET, ASP)
|
DaNuK
|
2
|
4,506
|
10 Marzo 2010, 02:05 am
por DaNuK
|
|
|
[ Batch ] Barra de progreso en batch... ¿Como?
Scripting
|
SuperDraco
|
5
|
12,448
|
30 Diciembre 2017, 14:26 pm
por Rubenprogrammer
|
|
|
VBS barra de progreso
Programación Visual Basic
|
quico5
|
0
|
3,404
|
14 Agosto 2012, 20:41 pm
por quico5
|
|
|
barra de progreso en c++
Programación C/C++
|
d91
|
4
|
5,275
|
27 Abril 2014, 21:25 pm
por amchacon
|
|
|
Como implementar barra de progreso en batch
Programación General
|
Baphomet2204
|
3
|
4,493
|
29 Julio 2019, 17:48 pm
por Baphomet2204
|
|