Перейти к содержимому

Как заархивировать папку через командную строку

  • автор:

Работа с 7zip из командной строки

Обновлено

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

Приведенные ниже команды выполняются после перехода в каталог с установленным 7-Zip. Как правило, это:

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

Распаковать и заархивировать

Распаковка

Синтаксис для распаковки:

* ключ x распаковывает с сохранением каталожной структуры; e — все в одно место.

7z x c:\temp\archive.7z -o»c:\temp\»

* в данном примере мы распакуем файл c:\temp\archive.7z в папку c:\temp

Архивация

Синтаксис для архивирования:

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-скрипта для резервного копирования:

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 укажет работать в четыре потока.
-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. Для их резервирования используем команду:

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

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

Как заархивировать папку через командную строку

Может тема уже не раз поднималась, но тем не менее.
Необходимо архивировать файл в зип через командную строку. В наличии есть winrar и 7z. Кто может подсказать коммандную строку

winrar английский, 7z только экзешник — поэтому варианты посмотри в help — е не приветствуются)
а что, в консоли 7z /? уже не набрать?
(3) для рара то же, только -? кажется.
точнее winrar a 1cbase \*.*
а рар через коммандную строку в зип архивирует разве?

Ключ -AF <тип>— указать формат архива

С помощью этого ключа можно указывать в командной строке тип архива, который будет создавать WinRAR. Параметр может принимать значения ‘rar’ или ‘zip’.

WinRAR a -afzip arc

Эта команда создаст архив arc.zip.

Данный ключ поддерживается только в WinRAR. Консольная версия RAR создавать архивы ZIP не может.

(7) а куда она его создаст? я раньшне с этим не сталкивался — нельзя ли написать полную строку — чтобы определенный файл в определенном месте архивировался в зип?

(8) можно, лять! пользуйтесь мозгом хоть иногда? не только в рот положиле уже, но и разжевали. посрать еще за вас предлагаете?

(8) вроде не к вам обращаюсь. Если я не знаю как формируется коммандная строка для winrar-а, то откуда мне знать какой параметр используется для прописи адреса архивируемого файла

«C:\Program Files (x86)\WinRAR\rar.exe» M G:\BackUp\Megapolis_alco\NEW\1cv7_.rar G:\Temp\*.* -agDD-MM-YY -ilogG:\BackUp\Megapolis_alco\log\backup.log -k -os -ow -r -m5 -rr20p -s -t -dh -x*.cdx

(10) в винраре — справка — содержание — режим командной строки, мля. все по русски причем. в 7z не сложнее найти

Как заархивировать папку через командную строку

A Добавить файлы в архив
C Добавить архивный комментарий
CH Изменить параметры архива
CV Преобразовать архивы
CW Записать в файл комментарий архива
D Удалить файлы из архива
E Извлечь файлы из архива, игнорируя пути
F Освежить имеющиеся файлы в архиве
I Найти строку в архивах
K Заблокировать архив
M Переместить файлы и папки в архив
R Восстановить повреждённый архив
RC Воссоздать недостающие тома
RN Переименовать файлы в архиве
RR[N] Добавить информацию для восстановления
RV[N] Создать тома для восстановления
S[имя] Преобразовать архив в самораспаковывающийся
S- Удалить SFX-модуль
T Протестировать файлы в архиве
U Обновить файлы в архиве
X Извлечь файлы из архива с полными путями

— Прервать дальнейший поиск ключей в командной строке
-@[+] Запретить [разрешить] списки файлов
-ac Снять атрибут «Архивный» после архивации или извлечения
-ad Добавить к пути назначения имя архива
-af Указать формат архива
-ag[формат] Добавить к имени архива текущую дату и время
-ai Игнорировать файловые атрибуты
-ao Добавить файлы с установленным атрибутом «Архивный»
-ap Установить путь внутри архива
-as Синхронизировать содержимое архива
-av Добавить электронную подпись
-av- Запретить добавление/проверку электронной подписи
-cfg- Игнорировать профиль по умолчанию и переменную окружения
-cl Преобразовать имена файлов в нижний регистр
-cp Выбрать профиль упаковки
-cu Преобразовать имена файлов в верхний регистр
-df Удалить файлы после архивации
-dh Открывать совместно используемые файлы
-dr Удалить файлы в Корзину
-ds Не сортировать файлы при архивации
-dw Уничтожить (затереть) файлы после архивации
-ed Не добавлять пустые папки
-en Не добавлять блок «Конец архива»
-ep Исключить пути из имён
-ep1 Исключить из пути базовую папку
-ep2 Сохранять полные пути файлов
-ep3 Сохранять полные пути, включая букву диска
-e[+] Задать исключение или включение файлов из/в обработку по маске атрибутов
-f Освежить имеющиеся файлы
-hp[пароль] Шифровать и данные, и заголовки файлов
-iadm Запрашивать административный доступ для SFX-архива
-ibck Запустить WinRAR как фоновый процесс в системном лотке
-ieml[.][адрес] Отправить архив по электронной почте
-iicon Указать значок для SFX-модуля
-iimg Указать логотип для SFX-модуля
-ilog[имя] Записывать протокол ошибок в файл
-inul Не выводить сообщения об ошибках
-ioff Выключить компьютер
-k Заблокировать архив
-kb Сохранять на диске файлы, извлечённые с ошибками
-log[формат][=имя] Записывать имена в файл-протокол
-m Установить метод сжатия
-mc Указать дополнительные параметры сжатия
-md Установить размер словаря
-ms[список] Указать типы файлов для архивирования без сжатия
-mt Установить число потоков
-n Включить в обработку только указанный файл
-n@ Включить в обработку только файлы, указанные в файле-списке
-oc Установить NTFS-атрибут «Сжатый»
-or Переименовывать файлы автоматически
-os Сохранить потоки NTFS
-ow Обработать информацию о правах доступа к файлам
-o[+,-] Установить режим перезаписи
-p[пароль] Установить пароль
-r Обрабатывать вложенные папки
-r- Запретить рекурсию (обработку вложенных папок)
-r0 Обрабатывать вложенные папки только по шаблону
-ri Установить приоритет и время простоя
-rr[N] Добавить информацию для восстановления
-rv[N] Создать тома для восстановления
-s Создать непрерывный архив
-s Создать непрерывные группы, используя счётчик файлов
-sc[объекты] Указать набор символов (и объекты)
-se Создать непрерывные группы, используя расширения файлов
-sfx[имя] Создать самораспаковывающийся архив
-sl Обрабатывать файлы размером меньше указанного
-sm Обрабатывать файлы размером больше указанного
-sv Создать независимые непрерывные тома
-sv- Создать зависимые непрерывные тома
-s- Запретить создание непрерывных архивов
-t Протестировать файлы после архивирования
-ta Обрабатывать файлы, изменённые после указанной даты
-tb Обрабатывать файлы, изменённые до указанной даты
-tk Сохранять исходное время архива
-tl Установить время архива по самому новому файлу
-tn Обрабатывать файлы не старее, чем указанный период времени
-to Обрабатывать файлы более старые, чем указанный период времени
-ts Сохранить/восстановить время файлов (модификации, создания, последнего доступа)
-u Обновить файлы
-v[k,b,f,m,M,g,G] Создать многотомный архив
-vd Очищать сменный диск перед архивацией на него
-ver[n] Управление версиями файлов
-vn Использовать старую схему именования томов
-vp Делать паузу перед каждым томом
-w Задать папку для временных файлов
-x Не обрабатывать указанный файл
-x@ Не обрабатывать файлы, указанные в файле-списке
-y Подразумевать ответ «Да» на все запросы
-z Прочитать комментарий архива из файла

Коды возврата WinRAR

В случае успешного окончания операции WinRAR завершает работу с нулевым (0) кодом возврата. Если код возврата отличается от нулевого, это говорит о том, что произошла какая-то ошибка.

Код возврата
Описание
0 Операция успешно завершена.
1 Предупреждение. Произошли некритические ошибки.
2 Произошла критическая ошибка.
3 Неверная контрольная сумма CRC32. Данные повреждены.
4 Предпринята попытка изменить заблокированный архив.
5 Произошла ошибка записи на диск.
6 Произошла ошибка открытия файла.
7 Ошибка при указании параметра в командной строке.
8 Недостаточно памяти для выполнения операции.
9 Ошибка при создании файла.
10 Нет файлов, удовлетворяющих указанной маске, и параметров.
255 Операция была прервана пользователем.

——-
Хочу ли я — Могу ли я — Говно ли я — Магнолия

Последний раз редактировалось yurfed, 10-04-2015 в 00:11 .

Как заархивировать файлы с относительными путями вместо абсолютных?

5cc6007dba0c1123053065.png

Задача заархивировать содержимое папки D:\OSPanel\domains\localhost\ в архив zip и поместить этот архив на рабочий стол.
Все так и происходит. Но архивания происходит с соблюдением всех путей

А мне нужно чтоб в архиве были только папки и файлы которые находятся в папке localhost

  • Вопрос задан более трёх лет назад
  • 881 просмотр

Комментировать

Решения вопроса 1

Первой строкой вам нужно перейти в эту папку (команда cd ), а потом уже добавлять содержимое в архив.

Ответ написан более трёх лет назад

Нравится 1 2 комментария

newaitix @newaitix Автор вопроса

Нет не работает такой вариант уже пробовал

@echo off cd "D:\OSPanel\domains\logreel.com\resource\" "%ProgramFiles%\WinRAR\WinRAR.exe" a -r "C:\Users\newai\Desktop\%var%.zip" "D:\OSPanel\domains\logreel.com\resource\*"

newaitix, «не работает» как именно?
Вы путь до архивируемых файлов на относительный поменяйте. Вы же уже в нужном каталоге.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *