Как работать с архиватором 7-Zip в командной строке

Мы предоставляем услуги удаленного администрирования серверов

Как работать с архиватором 7-Zip в командной строке

Обновлено Обновлено: Опубликовано:

Что такое 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 из командной строки — резервирование данных.

Для начала переходим в каталог с установленной программой:

cd «C:\Program Files\7-Zip\»

* так как в пути имеется пробел, его необходимо писать в кавычках.

Сама команда выглядит следующим образом:

7z a -tzip -ssw -mx1 -pPassword -r0 C:\Temp\backup.zip C:\Data

* в данном примере мы архивируем содержимое папки C:\Data и сохраняем в виде файла C:\Temp\backup.zip.
* описание ключей смотрите ниже или командой 7z —help.

Полный пример cmd-скрипта для резервного копирования:

@echo off

set source=»C:\Date»
set destination=»C:\Temp»
set passwd=»Password»
set dd=%DATE:~0,2%
set mm=%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 укажет работать в четыре потока.

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

Примеры

Исключение файлов и папок

Отдельно стоит рассказать про возможность исключения. Есть два варианта ее применения.

Первый — создать список исключений в отдельном файле.

Пример команды 7z:

7z.exe a -tzip -ssw -mx9 -r0 [email protected] 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. Для их резервирования используем команду:

7z.exe a -tzip -mmt=2 -ssw -mx5 -r0 C:\Temp\backup.zip D:\Bases_1C\*.1CD

* в данном примере мы будем сжимать все файлы 1CD в архив C:\Temp\backup.zip.


   Мы принимаем