Ок, немного соскучился и придумал, что содержит мою версию замены эпохи Linux для бедняков, ограниченную для ежедневного использования (без сохранения времени):
7daysclean.cmd
@echo off
setlocal ENABLEDELAYEDEXPANSION
set day=86400
set /a year=day*365
set /a strip=day*7
set dSource=C:\temp
call :epoch %date%
set /a slice=epoch-strip
for /f "delims=" %%f in ('dir /a-d-h-s /b /s %dSource%') do (
call :epoch %%~tf
if !epoch! LEQ %slice% (echo DELETE %%f ^(%%~tf^)) ELSE echo keep %%f ^(%%~tf^)
)
exit /b 0
rem Args[1]: Year-Month-Day
:epoch
setlocal ENABLEDELAYEDEXPANSION
for /f "tokens=1,2,3 delims=-" %%d in ('echo %1') do set Years=%%d& set Months=%%e& set Days=%%f
if "!Months:~0,1!"=="0" set Months=!Months:~1,1!
if "!Days:~0,1!"=="0" set Days=!Days:~1,1!
set /a Days=Days*day
set /a _months=0
set i=1&& for %%m in (31 28 31 30 31 30 31 31 30 31 30 31) do if !i! LSS !Months! (set /a _months=!_months! + %%m*day&& set /a i+=1)
set /a Months=!_months!
set /a Years=(Years-1970)*year
set /a Epoch=Years+Months+Days
endlocal& set Epoch=%Epoch%
exit /b 0
ИСПОЛЬЗОВАНИЕ
set /a strip=day*7
: измените 7 на количество дней, которые нужно сохранить.
set dSource=C:\temp
: это начальный каталог для проверки файлов.
ПРИМЕЧАНИЯ
Это неразрушающий код, он покажет, что произошло бы.
Изменение:
if !epoch! LEQ %slice% (echo DELETE %%f ^(%%~tf^)) ELSE echo keep %%f ^(%%~tf^)
что-то вроде:
if !epoch! LEQ %slice% del /f %%f
так что файлы на самом деле удаляются
Февраль : жестко запрограммирован на 28 дней. Бессекстильные годы - адское дополнение, действительно. если у кого-то есть идея, которая не добавит 10 строк кода, отправьте сообщение, чтобы я добавил его в свой код.
эпоха : я не принял во внимание время, поскольку необходимо удалить файлы старше определенной даты, так как часы / минуты удалили бы файлы со дня, который предназначался для хранения.
ОГРАНИЧЕНИЕ
эпоха принимает как должное ваш короткий формат даты ГГГГ-ММ-ДД. Его необходимо адаптировать для других настроек или оценки времени выполнения (прочитайте sShortTime, пользовательскую конфигурацию, настройте правильный порядок полей в фильтре и используйте фильтр для извлечения правильных данных из аргумента).
Я упоминал, что ненавижу автоматическое форматирование этого редактора? он удаляет пустые строки и копирование-вставка является адом.
Надеюсь, это поможет.