temporales script por para lenguaje fecha extension eliminar ejemplos confirmacion carpetas carpeta borrar batch bat archivos batch-file dos delete-file

batch-file - script - lenguaje batch



MS Dos Batch borra archivos viejos en el directorio (1)

Posible duplicado:
Archivo por lotes para eliminar archivos anteriores a N días

Intento hacer un archivo por lotes DoS para ir a través de un directorio con aproximadamente 500,000 archivos y me gustaría eliminar todos los archivos anteriores a 1 año.

Aquí está mi código hasta ahora

@echo off title File Exclusion Act for /f "usebackq delims=|" %%f in (`dir /b "C:/Users/Travis/Desktop/LotsOfFiles"`) do echo %%f pause

Hasta ahora, realiza un bucle e imprime todos los archivos en el directorio especificado.

Cualquier consejo / ayuda es muy apreciado.


El archivo de proceso por lotes a continuación debe invocarse con el número de días para que los archivos antiguos se eliminen a partir de hoy. Por ejemplo, use 365 para eliminar archivos de 1 año.

@echo off setlocal EnableDelayedExpansion call :DateToJDN %date% oldDate= -%1 for /F "skip=5 tokens=1-4*" %%a in (''dir /A:-D /O:D'') do ( call :DateToJDN %%a fileDate= if !fileDate! lss %oldDate% ( del "%%e" ) else ( goto :EOF ) ) goto :EOF :DateToJDN Date JDN= [+-days] for /F "tokens=1-3 delims=/" %%x in ("%1") do set /A mm=10%%x %% 100, dd=10%%y %% 100, yy=%%z if %mm% lss 3 set /A mm+=12, yy-=1 set /A a=yy/100, b=a/4, c=2-a+b, e=36525*(yy+4716)/100, f=306*(mm+1)/10, %2=C+DD+E+F-1524%3 exit /B

Si su formato% date% no es MM / DD / YYYY, vuelva a ordenar las variables mm, dd e yy en la primera línea de la subrutina DateToJDN.