Назад | Перейти на главную страницу

Перемещение большого количества файлов с помощью robocopy и 7zip

С помощью StackOverflow и ряда других мест, где я создал следующий скрипт, цель состоит в том, чтобы просмотреть папку и ее подкаталоги, если файлы старше 32 дней -> переместить их в другую папку и заархивировать эту папку . Если заархивированная папка старше 366 дней, удалите ее.

Я считаю, что сценарий хорошо работает в меньшем масштабе с парой сотен файлов, но проблема, с которой я столкнулся, заключается в том, что в этих каталогах есть данные за 12 месяцев, которые мне теперь нужно проанализировать. Есть около 8 папок и в среднем по 500 000 файлов в каждой размером от 1 до 2 КБ.

Кроме того, я ожидаю, что возникнет проблема, при которой все файлы за последние 12 месяцев будут добавлены в один и тот же архив, а не в отдельный архив для каждой даты.

Какие у меня есть варианты оптимизации? Я так понимаю, что, вероятно, сделал это неправильно.

Скрипт ниже:

@echo off
if not exist c:\7za920\7za.exe goto end
SET LOGS=C:\logs
SET TEMP=C:\temp
SET ARCHIVE=C:\archive
SET DELETEDARCHIVE=C:\deletedarchive
For /f "tokens=2-4 delims=/ " %%a in ('date /t') do (set mydate=%%c-%%a-%%b)
For /f "tokens=1-2 delims=/:" %%a in ('time /t') do (set mytime=%%a%%b)
ROBOCOPY %LOGS% %TEMP% /move /minage:32 /MT:32
for  %%X in (%TEMP%\*.*) do "c:\7za920\7za.exe" a -tzip "%ARCHIVE%\%mydate%_%mytime%_ARCHIVE.zip" "%%X"
ROBOCOPY %ARCHIVE% %DELETEDARCHIVE% /move /minage:366
del %DELETEDARCHIVE% /q

Я написал сценарий, похожий на ваш, но я напрямую использовал команду 7zip для перемещения в zip-архив, названный по дням.

Таким образом, он вычисляет день минус 30 и получает все соответствующие файлы для этого дня. Вы можете модифицировать vbs так, как хотите, весь день за последние 12 месяцев.

Получите это (вывод в IE был просто бонусом в скрипте); https://gallery.technet.microsoft.com/Archiving-VBS-script-with-b0f21ddc

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