MS Dos Batch удаляет старые файлы в каталоге

Возможный дубликат:
Пакетный файл для удаления файлов старше N дней

Я пытаюсь сделать пакетный файл DoS, чтобы пройти через каталог с примерно 500 000 файлов в нем, и я бы хотел, чтобы он удалял все файлы старше 1 года

Здесь мой код пока

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

Пока он завершает и распечатывает все файлы в указанном каталоге.

Приветствуются любые советы/помощь.

Ответ 1

Пакетный файл ниже должен вызываться с количеством дней для удаления старых файлов с сегодняшнего дня. Например, используйте 365 для удаления 1-летних файлов.

@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

Если ваш формат% date% не является ММ/ДД/ГГГГ, переупорядочивайте переменные мм, dd и yy в первой строке подпрограммы DateToJDN.