Резервное копирование 7zip

Пример скрипта для резервирования (CMD)

@echo off

set source="C:\DIR"
set destination="C:\BACKUP"
set passwd="Password1"
set day=%DATE:~0,2%
set month=%DATE:~3,2%
set year=%DATE:~6,4%
set curdate=%year%-%month%-%day%

"C:\Program Files\7-Zip\7z.exe" a -tzip -ssw -mx7 -p%passwd% -r0 %destination%\backup_%curdate%.zip %source%
Пример скрипта для резервирования (PowerShell)
$source = "C:\DIR"
$destination = "C:\BACKUP"
$passwd = "Password1"
$curdate = (Get-Date -UFormat "%Y-%m-%d")

& "C:\Program Files\7-Zip\7z.exe" a -tzip -ssw -mx1 -p$passwd -r0 $destination\backup_$curdate.zip $source

Описание ключей и команд 7z

В синтаксисе работы с 7zip идут команды и ключи.

Описание основных команд

Команда		Описание
a		Добавление файлов в архив. Если архивного файла не существует, создаёт его.
d		Удаление файла из архива
e		Извлечение файлов из архива. Все файлы оказываются в одной папке.
l		Вывод содержимого архива.
rn		Переименовывает файл внутри архива.
u		Обновление файлов в архиве. Если файла нет, создаёт новый.
x		Извлечение файлов из архива. Пути сохраняются.

Описание ключей

Часто используемые:

Ключ		Описание
-t		Тип архива. По умолчанию создаются файлы в формате 7z. Примеры, -tzip, -tgz
-ssw		Включить файл в архив, даже если он в данный момент используется.
		Для резервного копирования очень полезный ключ.
-mx		Уровень компрессии. 0 - без компрессии (быстро),
		9 - самая большая компрессия (медленно). Например, -mx4
-p		Пароль для архива. Например, -pStrong2!3paSsword
-o		Задаёт директорию, например, в которую будут распакованы файлы.
-r		Рекурсивное архивирование для папок.
		Задаётся числом от 0 (все каталоги) до количества уровней каталогов,
		которые нужно включить в архив.

Другие полезные ключи:

Ключ		Описание
-sdel		Удалить файлы после создания архива.
-sfx		Создание самораспаковывающегося sfx-архива.
-y		Утвердительно ответить на все вопросы, которые может запросить система.
-x		Исключить файлы или папки из архива.
-v		Позволяет разбить архив на фрагменты.
		Если указать -v1g, то архив будет разбит на части по 1 Гб.
-mmt		Количество потоков процессора,
		которые можно задействовать для работы программы.
		-mmt=4 укажет работать в четыре потока.
-m		Задает метод сжатия. Доступны варианты:
		- LZMA: базовый метод для сжатия 7z.
		Быстрое сжатие и декомпрессия.
		- LZMA2: метод по умолчанию для 7z.
		Поддерживает несколько процессорных потоков.
		- PPMd: метод PPMdH Дмитрия Шкарина с небольшими изменениями.
		Хорошо подходит для текстовых файлов.
		- BZip2: на основе алгоритма BWT. Также хорош для текстовых файлов.
		- Deflate: стандартный метод для форматов ZIP и GZip.
		Сжатие не очень хорошее, но высокая скорость работы.
		Поддерживает только 32 КБ словаря.
		- Deflate64: аналогичен Deflate, но с поддержкой 64 КБ словаря.

Полный список ключей и команд можно получить командой 7z --help.