Войти

Показать полную графическую версию : Безусловная циклическая архивация файлов за последние Х дней


aka_john
09-12-2018, 22:09
Добрый день.

Для архивации некоторых файлов использую следующую команду с планировщика

copy "d:\ФайлИсходник*.*" f:\arhive\ФайлНазначение*.*%date:~0,2%

Рано или поздно папка архива переполняется по месту на диске.
Как организовать копирование (архивацию), в цикле например за последние 5 дней, чтобы перезаписывался всегда более старый файл.
И в итоге в архиве были файлы только за последние 5 дней.
Спасибо.

aka_john
09-12-2018, 22:26
Пока решил проблему удалением файлов старше 5 дней
forfiles /p f:\Arhive\ /m *.* /s /d -5 /c "cmd /c del @path /q"

Busla
09-12-2018, 23:14
создаёте каталоги по дням недели и в них складываете

alpap
10-12-2018, 03:01
Пока решил проблему »
а как еще вы ее собирались решить по сути?

за последние 5 дней »
вот вы сами сейчас сходу дадите ответ что это значит? Это последние 5 дней в каждом месяце или это последние 5 дней из числа архивов на момент запуска кода? Если второе, то другие архивы (выше количества 5) должны быть уже и остается только удалять лишние. Если первое, надо высчитывать последние 5 дней каждого месяца текущего года чтобы запускать код только в определенном диапазоне дней.

megaloman
10-12-2018, 11:54
aka_john,создаёте каталоги по дням недели и в них складываете »
@Echo Off
Set "FileIn=Z:\Box_In\*.*"
Set "BoxOut=Z:\Box_Arc"
Md "%BoxOut%\%Date%"

Copy "%FileIn%" "%BoxOut%\%Date%\"
FOR /F "usebackq Skip=5 delims=" %%i IN (`2^>nul Dir /B /O:-D /T:C /A:D "%BoxOut%"`) DO Rd /S /Q "%BoxOut%\%%i"
GoTo :Eof




© OSzone.net 2001-2012