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:
FOR %%d IN (*.msg) DO (
for /f "tokens=3" %%f in ('findstr /i "address:" %%d') do (
set errores=%%f
echo %%f >> correos_rebotados.txt
)
)
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:
@echo off
setlocal ENABLEEXTENSIONS
call :dias %date%
set /a j+= -1
call :inc %j%
:dias
for /f "tokens=1,2,3 delims=-/." %%a in ("%1") do (
set dd=%%a&set mm=%%b&set yy=%%c)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
:inc
set /a a=%1+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
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
set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
(if %mm% LSS 10 set mm=0%mm%)&(if %dd% LSS 10 set dd=0%dd%)
FOR %%d IN (*.msg) DO (
echo %dd%/%mm%/%yy% >> correos_rebotados.txt
for /f "tokens=3" %%f in ('findstr /i "address:" %%d') do (
set errores=%%f
echo %%f >> correos_rebotados.txt
)
)
Si se les ocurres algo me darían una gran mano, desde ya mil gracias y suerte!!!
Sin probar:
@echo off
setlocal ENABLEEXTENSIONS
call :dias %date%
set /a j+= -1
call :inc %j%
for %%_ in (*.html) do (
for /f "tokens=1 delims=/" %%a in ("%%~t_") do (
if "%%a"=="%dd%" (
findstr /i "address:" "%%_" >> correos_rebotados.txt
)
)
)
goto:eof
:dias
for /f "tokens=1,2,3 delims=-/." %%a in ("%1") do (
set dd=%%a&set mm=%%b&set yy=%%c
)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
goto:eof
:inc
set /a a=%1+2472632,b=4*a+3,b/=146097,c=-b*146097,c/=4,c+=a
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
set /a dd=-dd+e+1,mm=-m/10,mm*=12,mm+=m+3,yy=b*100+d-4800+m/10
if %mm% LSS 10 set mm=0%mm%
if %dd% LSS 10 set dd=0%dd%
goto:eof