У меня есть папки с файлами, которые я хочу каждый день сохранять. В этих папках могут встречаться помимо нужных файлов мусор из текстовых файлов типа csv и других ненужных форматов. Так как папки практически содержат только текстовые файлы, то не хотелось использовать сложные системы бекапа. И правильно запущенный архиватор (в моем случае — 7zip) спасает лучше всяких специализированных программ.
7zip — отличный бесплатный архиватор без всяких там заморочек. Тут, наверно, подошел бы любой архиватор с возможностью выборочного архивирования файлов и запуска из консоли или скрипта. Но выбор 7zip был для меня очевиден, поэтому сделал backup на нем.
Каждый день с утра работает из планировщика батник с запуском 7zip, делается архив папки с именем в виде сегодняшней даты. Архиватор собирает в архив только определенные файлы, но при этом сохраняет все иерархию папок, что в моем случае очень важно.
Полный список аргументов для консольного запуска можно почитать тут с примерами.
Перейдем к моим параметрам запуска. Я использую следующие аргументы:
Аргумент | Значение |
---|---|
a | режим добавления файлов в архив |
-r | включается режим рекурсии папок (сохранение иерархии папок) |
-xr! | игнорится шаблон имени папки или файлов |
Мой пример bat файла, где я указываю путь до exe архиватора, путь и имя файла куда мне надо записывать архив с текущей датой (%date%), список файлов по маске:
1 | "c:\Soft\7z\7z.exe" a "c:\Dropbox\7z\backup_files\My_%date%.7z" "c:\Source\*.m" "c:\Source\*.txt" "c:\Source\*.vbs" "c:\Source\*.nb" "c:\Source\*.py" -r |
В данном случае аргумент -r позволяет искать нужные файлы по маске внутри всех подпапок. Все типы нужных файлов я перечисляю через * и расширение. Если нужен отдельный файл, то можно вместо * указать имя. Для удаления из поиска ненужных файлов или папок, добавляю к запуску ключ -xr!
Пример, где архивируется все, кроме файлов c расширением exe
1 | "c:\Soft\7z\7z.exe" a "c:\Dropbox\7z\backup_files\files_%date%.7z" "c:\Source\files\*.*" -xr!EXE |
Все интуитивно понятно и просто. Всем удачной работы…