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

Архивация измененных/добавленных файлов

02.01.2016, 22:45. Просмотров 891. Ответов 2
Метки нет (Все метки)

Здравствуйте.
Помогите пожалуйста написать батник, который будет архивировать только измененные и новые добавленные файлы.
- Полный путь к папке для архивирования задается вручную (copy/past) пользователем через интерфейс CMD
- Используется консольный архиватор 7-zip Игоря Павлова
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@echo off
:start
cls
set load=
set 7zip=
echo.
set /p load=Specify path backup
if "%load%"=="" goto start
cls 
:copy
set 7zip=backup.7z
if exist .\APP\%7zip% goto end 
7z.exe a -t7z -bd -v1024mb -m0=bcj2 -m2=delta -m3=lzma2:15 -si "%load%\*"
:end 
pause
:EOF
Алгоритм следующий:
В папку "C:\APP\*" копируются данные. После операции копирования данных, необходимо вручную запустить батник, который сделает "снимок" полной иерархии структуры папок и посчитает хеш-сумму для всех файлов в директории APP с выводом лога в файл snapshot.log Далее папка APP очищается и в неё копируется новая порция данных. Вновь запускаем тот же батник, который по предыдущему "снимку" сопоставит, проанализирует и создаст архив с сохранением полной иерархии всех папок включающий в себя только отличающиеся файлы.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.01.2016, 22:45
Ответы с готовыми решениями:

Поиск и копирование только измененных файлов
Вот есть такой код: SET f=%~dp0 ::Сканирование ветки реестра КонсультантПлюс. В ней...

Сравнение двух папок с копированием измененных файлов
Всем привет! Дано 2 папки с файлами и подпапками. F:\Folder1 - рабочая папка F:\Folder2 - папка...

Отлавливание добавленных и изменённых файлов
Доброго времени суток! Как создать батник при помощи которого возможно,например,при установке...

Вывод имён файлов, добавленных за текущий день в определённую папку
Например есть папка в которой много файлов и старых и новых , надо чтобы в этой папке показывало...

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

2
ComSpec
3410 / 1954 / 628
Регистрация: 26.02.2014
Сообщений: 1,457
04.01.2016, 06:02 2
Лучший ответ Сообщение было отмечено DianaKonovalova как решение

Решение

Цитата Сообщение от DianaKonovalova Посмотреть сообщение
Алгоритм следующий:
В папку "C:\APP\*" копируются данные. После операции копирования данных, необходимо вручную запустить батник, который сделает "снимок" полной иерархии структуры папок и посчитает хеш-сумму для всех файлов в директории APP с выводом лога в файл snapshot.log Далее папка APP очищается и в неё копируется новая порция данных. Вновь запускаем тот же батник, который по предыдущему "снимку" сопоставит, проанализирует и создаст архив с сохранением полной иерархии всех папок включающий в себя только отличающиеся файлы.


Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@echo off
 
set "arch=%ProgramFiles%\7-Zip\7z.exe"
 
set "source=C:\APP"
set "destination=C:\Test\changes.7z"
 
set "log=snapshot.log"
 
for /f "tokens=1,2*" %%i in ('
 ""%arch%" h "%source%"| findstr/rc:"^^.[^^-acioRv][^^ ]* ^ *[^^ ][^^ ]* ^ .""
') do (
 >>.tmp echo %%k^|%%i& if exist "%log%" (
  for /f "tokens=2 delims=|" %%l in ('findstr/bilc:"%%k|" "%log%"') do (
   if %%l equ %%i >>exclude.txt echo %%k
  )
 )
)
if exist "%log%" (
 "%arch%" a -x@exclude.txt "%destination%" "%source%"
 del exclude.txt
)
>nul move .tmp "%log%"
 
exit/b
2
DianaKonovalova
0 / 0 / 0
Регистрация: 16.08.2015
Сообщений: 5
05.01.2016, 22:41  [ТС] 3
ComSpec, великолепно, всё работает как надо. Благодарю за помощь!
Подсчёт хеша всех файлов и сам backup для выборки можно организовать из-под консольного архиватора Arc.exe?
В доке нашла необходимую опцию --crconly, но не пойму, какой должен быть синтаксис командной строки в батнике.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2016, 22:41

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

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

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


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

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

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