Archivo BAT que me genere un listado de los archivos nuevos en los últimos 5 días.

No lo consigo. Lo intento con esto:
@echo off
Setlocal EnableDelayedExpansion

dir c:\*.* /s /b > %userprofile%\Downloads\Todoelordenador.TMP

Pero, obviamente, eso me hace un listado, que me guarda en mi directorio Downliads, pero de todo el ordenador y sin cribado por fecha. Realmente necesitaría que se me hiciera ese listado pero solo con los archivos creados en los últimos 5 días.

1 respuesta

Respuesta
1

Prueba con esto:

@echo off
Setlocal EnableDelayedExpansion
del /q %userprofile%\Downloads\Todoelordenador.tmp
set /a numDias=5
set dd=%date:~0,2%
set mm=%date:~3,2%
set aa=%date:~6,4%
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,a=aa+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+a*365+a/4-a/100+a/400-2472633
set /a j+=-%numDias%
set /a a=%j%+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,aa=b*100+d-4800+m/10
set hoyMenosDias=%aa%%mm%%dd%
for /f %%x in ('dir c:\*.* /s/b') do (
set fecha=%%~tx
set fecha=!fecha:~6,4!!fecha:~3,2!!fecha:~0,2!
if !fecha! GTR %hoyMenosDias% echo archivo %%x fecha %%~tx>>%userprofile%\Downloads\Todoelordenador.tmp
)

Restar días en bat es bastante complicado como puedes ver. El funcionamiento del BAT anterior puede depender del formato regional de fecha (este es para el español de España). En la variable numDias se pone el número de días hacia atrás desde la fecha actual que se quiere analizar. Al tener que recorrer toda la unidad C: puede tardar bastante en terminar, ten paciencia.

Ya me contarás si te funciona (o si no te funciona, claro).

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas