Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
unkn0wn
1 / 1 / 0
Регистрация: 13.02.2013
Сообщений: 17
1

Архивация файлов по определённым правилам

07.04.2015, 20:44. Просмотров 692. Ответов 0
Метки нет (Все метки)

Господа знатоки, помогите с решением задачи:
Есть каталог с подкаталогами, в них есть файлы с расширениями *.log, *.dmp. Совместно с созданием файла *.dmp идёт запись в *.log.
Нужно проверить папки на наличие файлов, если файлы найдены то; проверить размер файла *.dmp если размер больше 100MB, проверить количество таких файлов их может быть больше 1 а потом проверить наличие файла *.log. Если файлы найдены проверить их время создания, если время создания файлов(*.dmp и *.log) равно или отличается на 20 секунд то поместить эти файлы в архив с именем в котором указана дата последнего изменения файла *.dmp. Если один из файлов не найден -создать архив лишь с тем файлом, который есть. После создания файла удалить те файлы, с которыми работал скрипт. В случае отсутствия файлов завершить работу.
Нашел несколько подходящих в некоторой мере скриптов и кое-как отредактировал:
Поиск файлов в подкаталогах и сверка даты изменения с точностью до секунды:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
@echo off
setlocal enableextensions enabledelayedexpansion
for /f "usebackq delims=" %%i in (`dir /b /s /a:-d /o:d %~dp0*.log %~dp0*.dmp 2^>nul`) do (
set sSourceFile=%%~i
for /f "usebackq skip=1 delims=" %%j in (`wmic.exe DataFile where "Name='!sSourceFile:\=\\!'" get LastModified`) do for /f %%k in ("%%~j") do (
set sVar=%%~k
set sLastModified=!sVar:~6,2!-!sVar:~4,2!-!sVar:~0,4!_!sVar:~8,2!-!sVar:~10,2!-!sVar:~12,2!
echo !sSourceFile!
echo !sLastModified!
)
)
endlocal
exit /b 0
И скрипт архивации через 7-zip. Но овсем незнаю как адаптировать под мои нужды:
Windows Batch file
1
2
3
4
set _in=D:\dumps\
set _out=D:\dumps\
set _arcpath=C:\Program Files (x86)\7-zip
for %%i in (%_in%\*.dmp) do "%_arcpath%\7z" a "%_out%\%%~ni.7z" "%%i"
Я так понимаю, нужно делать поиск в переменной sSourceFile из первого скрипта, находить файл\ы *.dmp сверять размер и проверять наличие файла *.log в этой переменной. После вытащить из переменной sLastModified относящийся к файлам *.log и *.dmp и потом сверить с условием, что разница в их времени может составлять до 20 секунд. А, после лишь подставить пути к файлам *.log и *.dmp в коде который отвечает за архивацию. На выходе должен получится архив с двумя файлами, если всё-таки файлов *.dmp будет больше 1, то к каждому из них поместить файл *.log -он всегда в единичном варианте. После вытащить имена файлов из sSourceFile и удалить их. Но реализация всего этого с такой логикой... в общем мой скилл пока не так хорош
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2015, 20:44
Ответы с готовыми решениями:

Архивация по 50 файлов
Есть одна папка в которой n картинок. Я вбрасываю в нее и жму name.bat Скрипт создает внутри...

Поиск и запуск файлов с определённым именем
Здравствуйте. Помогите реализовать батник. Требуется следующее: Есть много файлов с одним и тем...

Копирование всех файлов с определённым расширением
Здравствуйте! Задание такое: Копирование всех файлов с расширением doc из папки, в которой...

Поиск и сортировка файлов по определённым шаблонам
Добрый вечер, появилась задача по сортировке файлов из определённой папки, например если в файл...

Архивация текстовых файлов
Привет всем!!! У меня такая проблема на работе ... есть папка и там под папки и там в папках...

0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2015, 20:44

Ежедневная архивация файлов
Всем привет. Возникла надобность создавать архив ежедневно последних файлов в один о тот же...

Архивация файлов по маске
Добрый день! Прошу сразу сильно не пинать ногами ибо пишу первое сообщение на форум. Поиском ответа...

Ежемесячная архивация файлов
Всем привет! Помоги плиз со следующей проблемой, я скачиваю файлы с сервера и сразу архивирую их...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.