elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Crear un .bat que haga una operación sobre archivo según su fecha
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Crear un .bat que haga una operación sobre archivo según su fecha  (Leído 3,496 veces)
hermess87

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Crear un .bat que haga una operación sobre archivo según su fecha
« en: 18 Marzo 2011, 13:55 pm »

Hola amigos, por primera vez creo un tema aquí, sin embargo hace muchos anos que soy lector y este foro me ah servido mucho... Les traigo hoy un desafió :p pues estoy teniendo problemas para crear un pequeño script, les comento a ver si tienen alguna idea o pueden ayudarme!..Hola amigos, les comento que estoy haciendo un .bat que busca extrae una linea de varios archivos contenidos en una carpeta y la guarda en un txt...

me funciona perfectamente con este código:

Código
  1. FOR %%d IN (*.msg) DO (
  2.  
  3. for /f "tokens=3" %%f in ('findstr /i "address:" %%d') do (
  4.  
  5. set errores=%%f
  6. echo %%f >> correos_rebotados.txt
  7. )
  8.  
  9. )
  10.  
  11.  

Ahora lo que quiero hacer es solamente aplicar la búsqueda de la linea cuando el archivo .msg es de un día atrás...

Encontré un código para calcular el día anterior... pero no se como convidarlos correctamente pues

Tengo algo como esto:

Código
  1. @echo off
  2. setlocal ENABLEEXTENSIONS
  3. call :dias %date%
  4. set /a j+= -1
  5. call :inc %j%
  6.  
  7.  
  8. :dias
  9. for /f "tokens=1,2,3 delims=-/." %%a in ("%1") do (
  10.   set dd=%%a&set mm=%%b&set yy=%%c)
  11. set /a dd=100%dd%%%100,mm=100%mm%%%100
  12. set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
  13. set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
  14.  
  15. :inc
  16. set /a a=%1+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
  17. set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5
  18. set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
  19. (if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)
  20.  
  21.  
  22.  
  23. FOR %%d IN (*.msg) DO (
  24.  
  25. echo %dd%/%mm%/%yy% >> correos_rebotados.txt
  26.  
  27. for /f "tokens=3" %%f in ('findstr /i "address:" %%d') do (
  28.  
  29. set errores=%%f
  30. echo %%f >> correos_rebotados.txt
  31. )
  32.  
  33. )
  34.  

Si se les ocurres algo me darían una gran mano, desde ya mil gracias y suerte!!!


« Última modificación: 18 Marzo 2011, 23:24 pm por Leo Gutiérrez. » En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Crear un .bat que haga una operación sobre archivo según su fecha
« Respuesta #1 en: 19 Marzo 2011, 00:01 am »

Sin probar:


Código
  1. @echo off
  2. setlocal ENABLEEXTENSIONS
  3. call :dias %date%
  4. set /a j+= -1
  5. call :inc %j%
  6.  
  7. for %%_ in (*.html) do (
  8.  
  9. for /f "tokens=1 delims=/" %%a in ("%%~t_") do (
  10.  
  11. if "%%a"=="%dd%" (
  12. findstr /i "address:" "%%_" >> correos_rebotados.txt
  13. )
  14.  
  15. )
  16.  
  17. )
  18.  
  19. goto:eof
  20.  
  21. :dias
  22. for /f "tokens=1,2,3 delims=-/." %%a in ("%1") do (
  23. set dd=%%a&set mm=%%b&set yy=%%c
  24. )
  25.  
  26. set /a dd=100%dd%%%100,mm=100%mm%%%100
  27. set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
  28. set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
  29.  
  30. goto:eof
  31.  
  32. :inc
  33.  
  34. set /a a=%1+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
  35. set /a d=4*c+3,d/=1461,e=-1461*d,e/=4,e+=c,m=5*e+2,m/=153,dd=153*m+2,dd/=5
  36. set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
  37. if %mm% LSS 10 set mm=0%mm%
  38. if %dd% LSS 10 set dd=0%dd%
  39. goto:eof
  40.  


En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
crear boton que haga que entres en una web.(es una pregunta) « 1 2 »
Programación Visual Basic
madeinjaes 18 7,960 Último mensaje 22 Abril 2008, 05:07 am
por krackwar
[Batch] Borrar Archivos segun su fecha « 1 2 3 4 »
Scripting
elecktra 32 54,616 Último mensaje 8 Octubre 2013, 22:48 pm
por walterio
[Batch] Script para mover ficheros segun su fecha de creacion a otra carpeta
Scripting
javor 1 13,144 Último mensaje 19 Febrero 2009, 16:47 pm
por Novlucker
crear un programa que haga triangulos y cuadrados con caracteres de relleno
Programación C/C++
kikian94 3 23,809 Último mensaje 21 Octubre 2012, 03:13 am
por rir3760
Mostrar fecha según el formato indicado
Java
soy_nicanor 1 1,798 Último mensaje 10 Mayo 2015, 02:17 am
por soy_nicanor
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines