Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: martinsan99 en 19 Diciembre 2006, 20:55 pm



Título: ARCHIVOS .BAT + BARRA DE PROGRESO
Publicado por: martinsan99 en 19 Diciembre 2006, 20:55 pm
Holaaa
ANte todo buenas tardes, es agradable encontrar gente que comparte mis mismos gustos, les comento que encontre la pagina de casualidad, ingresando en google.

la duda es la siguiente:
tengo que copiar algunos archivos de una unidad a determinada hora. esto lo solucione con un archivo .bat y el programador de tareas del XP, cosa que me ha funcionado, pero necesito hacer lo siguiente:
cuando copia los archivos, hace un registro de los mismos en un txt, el que solucione con la siguiente linea...

xcopy m:\prueba\*.* p:\prueba\ /s/e/c/d:12-13-06/r/y/f >c:\registro.txt

esto con el xp es bastante util ya que me permite actualizar los archivos que se modificaron desde el 13/12 hasta el dia de la fecha en un solo comando.
el tema es que al generar el registro.txt, no se cuanto va copiando. necesito saber si alguien sabe como hacer una barra de progreso junto al bat.

el codigo completo del bat es el siguiente, para que lo vean...

@echo ****************************************
@echo *****    proceso de copia de archivos     ******
@echo *****  copiando archivos de public cobol ******
@echo *****   consulte avance en c:\registro.txt******
@echo ****************************************
@echo off

date /t >c:\temp1.txt
@echo >>c:\temp1.txt fecha de iniciacion de copia
time /t >c:\temp2.txt
@echo >>c:\temp2.txt hora de inicio

del c:\registro.txt

m:
cd\
cd prueba

xcopy m:\prueba\*.* p:\prueba\ /s/e/c/d:12-13-06/r/y/f >c:\registro.txt

cd\

date /t >c:\temp3.txt
@echo >>c:\temp3.txt fecha de finalizacion de copia.
time /t >c:\temp4.txt
@echo >>C:\temp4.txt hora de finalizacion . -- . proceso terminado

copy c:\temp1.txt+c:\temp2.txt+c:\registro.txt+c:\temp3.txt+c:\temp4.txt c:\txts\final.txt /b

del c:\temp1.txt
del c:\temp2.txt
del c:\temp3.txt
del c:\temp4.txt

@echo

@echo *proceso terminado, vea el archivo c:\txts\final.txt*

REM by *****SAM*****

que opinan???

saludos y muchas gracias...


Título: Re: ARCHIVOS .BAT + BARRA DE PROGRESO
Publicado por: Azielito en 19 Diciembre 2006, 21:21 pm
no podre ayudarte con esto pero si en orientarte a un mejor lugar para tus dudas sobres esto
existe un foro llamado Scripting dentro de este mismo
puedes verlo aca
http://foro.elhacker.net/index.php/board,64.0.html


Título: Re: ARCHIVOS .BAT + BARRA DE PROGRESO
Publicado por: sirdarckcat en 20 Diciembre 2006, 01:08 am
pues, como lo haces todo dentro del comando de XCOPY no creo que se pueda hacer.. :P

Saludos!!


Título: Re: ARCHIVOS .BAT + BARRA DE PROGRESO
Publicado por: Division-x en 6 Enero 2007, 03:01 am
pues, como lo haces todo dentro del comando de XCOPY no creo que se pueda hacer.. :P

Saludos!!

y de que manera habria que hacerlo para que se pudiese mostrar la barra de progreso??? oh, amable Sdc, por favor, solventa mi duda, ;D (vale cualkier otro, pero Sdc controla mazo del tema)


Título: Re: ARCHIVOS .BAT + BARRA DE PROGRESO
Publicado por: sirdarckcat en 6 Enero 2007, 04:32 am
Haciendolo manualmente con un FOR :D

Saludos!!


Título: Re: ARCHIVOS .BAT + BARRA DE PROGRESO
Publicado por: Division-x en 6 Enero 2007, 17:49 pm
o.O   decias????? xDD


Título: Re: ARCHIVOS .BAT + BARRA DE PROGRESO
Publicado por: sirdarckcat en 6 Enero 2007, 23:58 pm
con un FOR.. haces un for que obtenga todos los archivos, y despues haces el xcopy para cada archivo individualmente, la barra de progreso de.. 20 puntos por ejemplo, se haria con la cantidad de archivos que llevas entre el total de archivos por 20..

con \r se puede borrar una misma linea :P y volver a escribirla, o con CLS pero con cls se ve muy feo xD

Saludos!!


Título: Re: ARCHIVOS .BAT + BARRA DE PROGRESO
Publicado por: pantocrator en 25 Mayo 2007, 18:43 pm
Bueno hay un truco para la barra de progreso. Os lo muestro con un ejemplo de un ping.

:: Creado por Pantocrator (fleky)
:: Para el foro
:: Descripción
:: Hace un ping a todas las direcciones ip en el fichero lista.txt y crea un log
:: con la fecha y hora en que se realizó el ping incluyendo unicamente si el
:: ping fue erroneo.


@echo off
color 17
mode con lines=10 cols=59

FOR /F "tokens=1 delims=/ " %%a IN ('DATE /T') DO set diasemana=%%a
FOR /F "tokens=2 delims=/ " %%b IN ('DATE /T') DO set dia=%%b
FOR /F "tokens=3 delims=/ " %%c IN ('DATE /T') DO set mes=%%c
FOR /F "tokens=4 delims=/ " %%d IN ('DATE /T') DO set any=%%d


set fichero=%dia%%mes%%any%

if exist %fichero% (
   goto pings
   ) else (
    echo --[Hora]--    [Direccion IP]    [Host]      --[Mensaje]-->> %fichero%
    echo ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ>> %fichero% )


:pings
cls
echo ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
echo ³        Procesando Pings de servidores      ³
echo ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
echo 1234567890123456789
echo

for /f "tokens=1,2 delims=|" %%p in (lista.txt) do (echo/|set/p ^=^Û&@ping %%p -n 2 | find "TTL">nul || @echo %time%  -[ %%p ] - [ %%q ] -     [ no responde ] >> %fichero% )

:fin
exit

Os he puesto en negrita el kit de la cuestión. Este truco lo saque de las news de microsoft.

saludos y espero que os sirva.

A Por cierto os aconsejo que editéis el script con el edit del dos.