Работа с 7zip из командной строки
Приведенные ниже команды выполняются после перехода в каталог с установленным 7-Zip. Как правило, это:
cd "C:\Program Files\7-Zip"
Распаковать и заархивировать
7z <команда> <ключи> <пути к каталогам и файлам>
РаспаковкаСинтаксис для распаковки:
7z <x или e> <архивный файл> -o"<путь, куда распаковываем>"
* ключ x распаковывает с сохранением каталожной структуры; e — все в одно место.
7z x c:\temp\archive.7z -o"c:\temp\"
* в данном примере мы распакуем файл c:\temp\archive.7z в папку c:\temp
АрхивацияСинтаксис для архивирования:
7z a <ключи> <архивный файл> <объект архивирования>
7z a -tzip -mx5 -r0 c:\temp\archive.zip c:\temp
* в данном примере мы создадим zip-архив с уровнем компрессии 5; в архив попадет все содержимое всех каталогов; название для файла c:\temp\archive.zip; запаковываем все содержимое папки c:\temp.
7z a -mx1 c:\temp\archive.7z c:\temp\file1.txt c:\temp\file2.txt c:\temp\file3.txt
* в данном примере мы архивируем файлы c:\temp\file1.txt, c:\temp\file2.txt, c:\temp\file3.txt с низкой компрессией 1; в итоге будет получен архив c:\temp\archive.7z.
Резервное копирование с помощью 7-Zip
Один из самых распространенных примеров использования 7zip из командной строки — резервирование данных.
Для начала переходим в каталог с установленной программой:
* так как в пути имеется пробел, его необходимо писать в кавычках.
Сама команда выглядит следующим образом:
7z a -tzip -ssw -mx1 -pPassword -r0 C:\Temp\backup.zip C:\Data
* в данном примере мы архивируем содержимое папки C:\Data и сохраняем в виде файла C:\Temp\backup.zip. * описание ключей смотрите ниже или командой 7z --help.
Полный пример cmd-скрипта для резервного копирования:set source="C:\Date" set destination="C:\Temp" set passwd="Password" set dd=%DATE:
3,2% set yyyy=%DATE:
6,4% set curdate=%dd%-%mm%-%yyyy%
"C:\Program Files\7-Zip\7z.exe" a -tzip -ssw -mx1 -p%passwd% -r0 %destination%\backup_%curdate%.zip %source%
* данный скрипт заархивирует содержимое каталога C:\Data в файл C:\Temp\backup_<текущая дата>.zip. Полученный архив будет защищен паролем Password. * содержимое необходимо сохранить в файле с расширением .cmd или .bat.
Пример Powershell скрипта для резервного копирования:$source = "C:\Date" $destination = "C:\Temp" $passwd = "Password" $curdate = (Get-Date -UFormat "%d-%m-%Y")
& "C:\Program Files\7-Zip\7z.exe" a -tzip -ssw -mx1 -p$passwd -r0 $destination\backup_$curdate.zip $source
* данный скрипт также заархивирует содержимое каталога C:\Data в файл C:\Temp\backup_<текущая дата>.zip. Полученный архив будет защищен паролем Password. * содержимое необходимо сохранить в файле с расширением .ps1.
Описание ключей и команд 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.
Примеры
Исключение файлов и папокОтдельно стоит рассказать про возможность исключения. Есть два варианта ее применения.
Первый — создать список исключений в отдельном файле.
Пример команды 7z:
7z.exe a -tzip -ssw -mx9 -r0 -x@exclus.txt C:\Temp\backup.zip C:\Data
* где exclus.txt — файл с исключениями.
Пример файла с исключениями:
* в данном примере мы исключаем каталог с именем test и все файлы с расширением tmp.
Второй — указать исключение в команде.
7z.exe a -tzip -ssw -mx9 -r0 -xr!Шаблон* C:\Temp\backup.zip C:\Data
Резервирование баз 1СДанные базы 1С находятся в файлах с расширением .1CD. Для их резервирования используем команду: