Создание архива в один клик, при помощи командной строки и архиватора WinRAR.

Рубрика: Программы | Выпуск: 12.03.16 Последняя редакция: 12.03.2016

Создание архива в один клик, при помощи командной строки и архиватора WinRAR.Давайте сразу начнём с простого примера. К примеру нам надо постоянно архивировать какую-то папку, или папки, или файлы и т.д. То-есть нам надо постоянно выполнять одну и туже операцию по архивации. Запускать архиватор, искать файлы, выбирать место и т.д. В общем, эта операция описана в этой статье - Что такое архив и как архивировать файлы (WinRAR).

Как этого избежать? Точнее не избежать, а автоматизировать этот нудный процесс? А очень просто, надо просто создать ярлык с определёнными свойствами и прописать там нужные папки. И после клика по этому ярлыку нужные папки будут автоматически архивироваться и помещаться в нужное место. Ну блин очень удобно, особенно когда работаешь над проектом, или постоянно заливаешь файлы, или ещё что-то. Надо просто закинуть нужные файлы в нужную папку, ткнуть по ярлыку и архив готов. И не надо постоянно лазить по настройкам архиватора, каждый раз настраивая архивацию заново. Всё довольно просто и удобно. И в этом нам поможет командная строка.

Внимание, для этого нам понадобится архиватор WinRAR. Конечно есть и другие архиваторы и всё такое. Но я работаю именно с этим. Но ведь тут главное понять принцип создания архива при помощи командной строки, дальше будет проще. Какой архиватор захотите, тот и будете "пользовать", ну или "юзать" wink Только учтите, команды у разных архиваторов разные. Что прокатит с архиватором WinRAR, то не прокатит с другими архиваторами. Но если знаете принцип создания архива, то легко разберётесь и с другими архиваторами. Итак:


Создание архива в один клик, при помощи командной строки и архиватора WinRAR.

Тут всё до безобразия просто. Давайте опять всё разберём на простом примере. Вот мне к примеру надо постоянно архивировать сайты, ведь я их создаю и всё такое. И чтобы меньше париться и чтобы всегда можно было легко откатиться до более ранней версии, по мере работы над сайтами, я постоянно создаю архивы. Кстати, таким-же образом можно легко делать резервные копии системных файлов и т.д. Что довольно удобно. Ведь архиватор показывает и скрытые файлы, значит, если какие-то скрытые файлы поломаются, то в процессе восстановления, вам не придётся лишний раз ползать по настройкам компьютера. Если вдруг случится косяк, просто открываете архив и восстанавливаете нужный файл в нужное место с заменой и все дела. Извините отвлекся.

Итак, для начала надо создать ярлык. Просто тупо кликаем правой кнопкой мыши по рабочему столу. Далее в контекстном меню переходим по пункту Создать\Ярлык. Прописываем там строку и сохраняем:

F:\portable\zraznoe\WinRAR\WinRARPortable.exe a -ep1 -r -u -rr10% -y -ibck -t F:\Разное\site-разное\arhiv\история\site.rar F:\Разное\site-разное\site\*.*

Вам конечно придётся прописать другую строку. Эта строка чисто для примера, чтобы разобраться что и куда тут надо тыкать wink Итак:

F:\Разное\site-разное\arhiv\история\site.rar - здесь указывается место, где будет создан архив и его название, в данном случае я обозвал его site.rar

F:\Разное\site-разное\site\*.* - здесь указывается папка, которую надо архивировать, в данном случае это папка site А значки *.* обозначают, что будет архивироваться всё содержимое выбранной папки.

F:\portable\zraznoe\WinRAR\WinRARPortable.exe - а вот здесь вы указываете путь до вашего архиватора. Мне проще, я пользуюсь портативной версией, поэтому могу хранить её где угодно. А если у вас стандартная версия архиватора WinRAR, то придётся поискать его на диске "С". Примерно в этой папочке - C:\Program Files (x86). Ну или примерно где-то там smile Но лучше конечно пользовать портативные версии программ, они круче. Помните я их описывал? Не помните? Ну вы блин и даёте. Вот ведь эта статья - Портативные программы. wink

a -ep1 -r -u -rr10% -y -ibck -t - а вот эта вот ерунда, это всякие команды и ключи. Вот сейчас мы их и разберём немного:


a - это команда для добавления файлов в архив. Дальше пойдут ключи:

-ep1 - исключаем из пути базовую папку.

-r - обрабатываем вложенные папки.

-u - во время архивации, старые папки и файлы в архиве, заменяем на новые.

-rr10% - информация для восстановления. В принципе 10% многовато, просто я перестраховщик. По мне, лучше пускай побольше места занимает, зато понадёжнее хранится. Ведь чем больше выделите места под эту информацию, тем надёжнее. Но как правило бьются архивы довольно редко. Лично у меня ещё ни разу в жизни ни один архив не поломался. Ой, а вот если у вас стоят антивирусы, оптимизаторы и прочая и прочая, то тут конечно риски возрастают.

-y - на все запросы ответ "Да". Это чтобы лишний раз не отвлекаться.

-ibck - а это чтобы архиватор WinRAR запускался в фоновом режиме, чтобы лишний раз глаза не мозолил. Ведь эту архивацию можно запланировать по времени, при помощи планировщика, что довольно удобно. И у вас всегда будет свеженький архив нужных файлов. У меня так сохранки игр постоянно сохраняются, ибо я постоянно забывал про них во время восстановления системы и приходилось всё переигрывать заново, а это напрягало и напрягало довольно сильно smile

-t - а это надо, чтобы файлы протестировались после упаковки.., мало-ли...

Вот и всё. Создаёте ярлык, прописываете там нужные команды и ключи. Теперь просто тыкаете по ярлыку и нужная папка помещается в архив и размещается в нужном месте и все дела.

А чтобы ярлык не попутать, можно значок ему подобрать. Просто заходите в "Свойства" ярлыка и тыкаете по кнопочке "Сменить значок". Затем выбираете тот, который приглянулся, жимкаете "Ок" и все дела. Теперь вы ваш ярлык для архивации ни с чем не попутаете smile Кстати, если хотите ярлык самого архиватора, то ярлыки программ как правило хранятся в папках с программами. Но можно просто тупо создать ярлык самого запускающего файла WinRARPortable.exe это если портативная программа, или WinRAR.exe если стационарная и уже там прописать нужные команды и ключи и тогда париться с поиском значка не придётся. В общем, разберётесь. Тут ведь главное направление знать, куда рыть, а там накопаем roll


Запуск архивации при помощи планировщика заданий.

Вот хорошо что про планировщик заданий вспомнили. Сейчас научимся, как запускать архивацию, при помощи планировщика заданий, в нужное нам время. Тут только есть один момент, точнее два. В планировщике можно сразу прописывать нужные команды, а можно эти команды прописывать в ярлыке и потом при помощи батника запускать его в планировщике. Первый вариант простой и без запарок. Второй с запарками. Но ради чего париться? Сейчас объясню.

Тут всё просто. В первом варианте, если у вас полетит система и вы восстановите её до внесения изменений в планировщик, то всё придётся вносить заново. Опять искать эти ключи, команды, в общем напрягать "моск" и всё такое. Если будет второй вариант, то вам придётся всего-лишь заново создать задачу в планировщике и указать нужный путь до батника. И кроме того, при использовании батника, вам надо будет вносить изменения только в ярлык архиватора, а планировщика заданий вы больше касаться не будете, что блин довольно удобно.

Итак первый вариант, как я и говорил, он без запарок. Запускаем планировщик заданий. Он вот тут  - Панель управления\Система и безопасность\Администрирование. Далее создаём простую задачу, настраиваем там всё как вам надо. Если встретятся танкисты, то только в коментах чиркните, мигом изображу статью, как пользоваться планировщиком заданий и всё такое. Это я не стебусь, ведь именно благодаря танкистам и появляются новые статьи. А если они ещё и броники одевают, то тут уже вообще целые серии статей появляются. Так-что огромная им благодарность за их вопросы. Да и вообще.., если смотреть с чисто философской точки зрения, то все мы танкисты, просто у каждого свои "танковые" сферы grin Ой.., отвлёкся.., извиняюсь wink

Итак, настраиваем всё под себя, даём название задаче, устанавливаем время запуска и т.д. А вот на вкладочке "Действие" выбираем "Запуск программы". А на вкладочке "Запуск программы" в поле "Программа, или сценарий" вводим выше приведённые команды, которые мы прописывали для ярлыка. Вот собственно говоря и всё. Теперь архивация будет запускаться в нужное вам время и с нужными параметрами.


А теперь для любителей сложностей. Запуск при помощи батника. Открываем блокнот и прописываем там путь к вашему ярлыку:

start F:\"portable\zraznoe\WinRAR"\rez_kop.lnk

Где:

start F:\"portable\zraznoe\WinRAR"\ - это команда на запуск (start) и путь к вашему ярлыку, у вас путь конечно другой будет.

rez_kop.lnk - а это название вашего ярлыка. Название может быть любое, не забудьте только обязательно ставить расширение .lnk это расширение ярлыка.

Далее даём сему документу любое название и дописываем расширение .bat Я к примеру долго не парился просто обозвал его rez_kop.bat и всё. А вот теперь открываем планировщик заданий, далее "Запуск программы", ну и прописываете там путь  к вашему батнику и все дела.

Внимание. Если у вас в батнике, в пути будут русские буквы, названия папок, файлов на русском языке, то надо сохранить его в кодировке OEM 866. В простом блокноте такой фишки нет, но она есть в нотепаде (Notepad). Путь в нотепаде будет такой - Меню\Кодировки\Кодировки\Кириллица\OEM 866. Меняете кодировку и батник заработает.

Обрисую всё в общих чертах для наглядности. Создаёте ярлык с нужными командами и ключами, затем создаёте батник, где прописываете путь до этого ярлыка, затем в планировщике прописываете путь до этого батника, все дела. Теперь нужно вносить изменения только в ярлык. Что весьма удобно. Ведь бывает что надо и вручную ткнуть по ярлыку и всё такое. А вот в первом варианте все изменения нужно вносить только в планировщик заданий. И чтобы вручную ткнуть, надо сперва запустить этот грешный планировщик. Но тут конечно на вкус и цвет фломастеры разные wink

А напоследок выложу таблицы команд и ключей для архиватора WinRAR. Итак, встречайте:


Таблицы команд и ключей для архиватора WinRAR

Список команд

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<n> Установить метод сжатия
-mc<параметры> Указать дополнительные параметры сжатия
-md<n> Установить размер словаря
-ms[список] Указать типы файлов для архивирования без сжатия
-mt<потоки> Установить число потоков
-n<файл> Включить в обработку только указанный файл
-n@<файл-список> Включить в обработку только файлы, указанные в файле-списке
-oc Установить NTFS-атрибут "Сжатый"
-or Переименовывать файлы автоматически
-os Сохранить потоки NTFS
-ow Обработать информацию о правах доступа к файлам
-o[+,-] Установить режим перезаписи
-p[пароль] Установить пароль
-r Обрабатывать вложенные папки
-r- Запретить рекурсию (обработку вложенных папок)
-r0 Обрабатывать вложенные папки только по шаблону
-ri Установить приоритет и время простоя
-rr[N] Добавить информацию для восстановления
-rv[N] Создать тома для восстановления
-s Создать непрерывный архив
-s<N> Создать непрерывные группы, используя счётчик файлов
-sc<набор символов>[объекты] Указать набор символов (и объекты)
-se Создать непрерывные группы, используя расширения файлов
-sfx[имя] Создать самораспаковывающийся архив
-sl<размер> Обрабатывать файлы размером меньше указанного
-sm<размер> Обрабатывать файлы размером больше указанного
-sv Создать независимые непрерывные тома
-sv- Создать зависимые непрерывные тома
-s- Запретить создание непрерывных архивов
-t Протестировать файлы после архивирования
-ta<дата> Обрабатывать файлы, изменённые после указанной даты
-tb<дата> Обрабатывать файлы, изменённые до указанной даты
-tk Сохранять исходное время архива
-tl Установить время архива по самому новому файлу
-tn<время> Обрабатывать файлы не старее, чем указанный период времени
-to<время> Обрабатывать файлы более старые, чем указанный период времени
-ts<m,c,a> Сохранить/восстановить время файлов (модификации, создания, последнего доступа)
-u Обновить файлы
-v<n>[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 Операция была прервана пользователем.

Есть мысль?

  • anatolij

    Привет от танкистов в броникахsmile
    А можно вытащить из архива один файл, если архивировал папку целиком? Скажем в папке много файлов, я ее заархивировал, а мне надо одну фотографию достать.

    • Броня крепка и танки наши быстры roll

      Отдельные файлы вытащить из архива можно. Просто открываешь архив, выбираешь нужный файл, выделяешь и нажимаешь бобочку "Извлечь". Потом укажешь место, куда извлечь надо и все дела. Или тыкаешь по нему правой кнопкой мыши и далее выбираешь нужный пункт в открывшемся контекстном меню. Так-же можно добавить отдельные файлы в архив, можно удалить их оттуда, можно переименовать, посмотреть и т.д.

      К примеру, если заархивированы статьи и фото, то их можно почитать и посмотреть прямо в архиве. Так-же прямо в архиве их можно и редактировать, даже извлекать не надо. После внесения изменений, архиватор просто спросит, сохранить внесённые изменения, или как? Ткнёшь "Да" и все дела, всё сохранится в лучшем виде.

      Там и искать можно, причём архиватор залезет во все места какие только можно и даже в те, в которые залезть в принципе невозможно. То-есть он залезет и в вордовские документы и блокнот почитает и игровые файлы вскроет и т.д. Кстати да, очень удобно игровые файлы колупать, редактировать там что-то по мелочи и т.д. Я к примеру Supreme Commander там по жизни редактирую. В общем, архиватор WinRAR зверски удобная "весч" smile

  • Роман

    А если в пути до нужной тебе папки русские имена папок и ещё и с пробелами?
    И как сделать что бы ахиватор назначал имена файлов автоматически например прибавляя к имени дату, скажем name10022017.rar

    • Если русские имена, да ещё с пробелами, поступаем так-же, как и в случае с обычными батниками. Там где пробелы, и русские буквы, всё заключаем в кавычки. К примеру так:

      F:portablezraznoeWinRARWinRARPortable.exe a -ep1 -r -u -rr10% -y -ibck -t F:Разноеsite-разноеarhivисторияsite.rar F:"РазноеСайт разноемой сайт"*.*

      А добавить текущую дату и время, для этого есть ключ -ag[формат] Получится к примеру так:

      F:portablezraznoeWinRARWinRARPortable.exe a -ep1 -r -ag[dd.MM.yy] -u -rr10% -y -ibck -t F:Разноеsite-разноеarhivисторияsite.rar F:Разноеsite-разноеsite*.*

      И выглядеть после архивации будет примерно так - site[10.02.17] Формат даты можно подобрать любой. К примеру если сделать так -ag[dd.MM.yyyyг.] то получится так site[10.02.2017г.]

  • Елена

    Есть папка, внутри нее папка с файлами внутри и 2 файла, я хочу заархивировать только то, что внутри папки, т.е. если открываю архив, то внутри лежит 2 файла и папка с файлами внутри?

    • Здравствуйте. Извините, не совсем понял что вам надо. Точнее совсем не понял smile Я так понял есть папка, в ней лежит папка с файлами и ещё два файла? Вы хотите заархивировать только папку с файлами и два файла? Если я правильно понял, то да, так можно сделать. Для этого есть ключ -ep1 Он исключает из архива базовую папку.

      Пример:
      F:portablezraznoeWinRARWinRARPortable.exe a -ep1 -r -u -rr10% -y -ibck -t F:Разноеsite-разноеarhivисторияsite.rar F:Разноеsite-разноеsite*.*

      При помощи ключа -ep1 исключаем из пути базовую папку site.

      Перечитайте внимательнее статью, там всё это есть в более развёрнутом виде. Ну а если я вопрос не правильно понял, поправьте меня пожалуйста. Удачи smile

  • Морпехи курят)))
    А всёже, як енту проху заставить удалять предыдущие по времени архивы перед созданием нового из настроек комстроки?

    • А вот даже и не знаю, я такой темой не озадачивался. По моему архиватор может удалять только файлы, добавляемые в архив.

      В принципе, если хотите чтобы предыдущие архивы удалялись, то можно запускать архиватор через батник. А в батнике сперва прописать удаление старого архива и создание нового.

      Тут ведь всё от поставленных задач зависит. Если вам к примеру надо, чтобы постоянно был свежий архив, то достаточно просто обновлять старый архив, а не создавать новый. Тогда не будет создаваться новых архивов, будет один, но всегда обновлённый. Для обновления надо запускать архивацию с ключиком -u

  • Алексей

    "Вот мне к примеру надо постоянно архивировать сайты, ведь я их создаю и всё такое. И чтобы меньше париться и чтобы всегда можно было легко откатиться до более ранней версии, по мере работы над сайтами, я постоянно создаю архивы."

    Вы серьезно? 2016 год - контроль версий с помощью архиватора lol

    • Причём тут контроль версий?

      Я создаю сайты на своём компьютере, проверяю при помощи своего-же сервера, который находится у меня-же на компьютере. Сделал шаг по созданию сайта, ткнул по ярлыку, архив готов, сделал следующий шаг, ткнул по ярлыку, архив готов. Сделал ошибку, а ведь ошибка может обнаружиться и не через один месяц, нашёл нужный архив, ткнул по нему, всё восстановлено. Что может быть проще и быстрее? Да и не обязательно ошибка. Есть масса различных доработок и наработок, которые ты делаешь во время работы. Потом вроде как они становятся не нужны. Потом через пару дней, недель, месяцев, спохватишься, ведь делал-же... Что, заново всё лепить? Раньше было не надо, а теперь вдруг понадобилось. Нет, ни каких запарок, находишь нужный архив, ткнул, всё на месте. И ни каких воплей, матов, сожалений и заламывания рук, по типу - "Ну почему я не сделал этот грёбаный резервный архив, ведь всего одна секунда? Ведь потом надо опять убить кучу времени и сил на то, что уже делал раньше" mrgreen Ну и т.д.

      У меня сотни версий дизайнов, десятки перепиленных движков и плагинов, плюс куча своих наработок. И где мне весь этот хлам хранить прикажете? И в любое время я из этого хлама могу выдернуть нужную мне фиговину, которая как всегда - "Вдруг вот внезапно понадобилась". Вот к примеру я сейчас хочу вернуть старый дизайн, который делал года три, четыре назад. Для этого мне нужно всего-лишь распаковать архив и всё, вместо того, чтобы опять сидеть и тупо писать его заново. А ведь это долгий процесс, пока сделаешь, пока допилишь, пока во всех браузерах проверишь, пока всё пофиксишь shock

      На данный момент, на создание резервной копии сайта я трачу примерно пол секунды. На поиск и восстановление, иногда уходит около минуты. Если у вас есть идеи как сделать это ещё более быстро и удобно, я рад вас выслушать smile

Для отправки комментария вам необходимо авторизоваться.

Материалы, дизайн © Михаил. При копировании материалов, оставляйте пожалуйста ссылку на сайт "В гостях у Халыча". Спасибо :) Контакты - admin@halych.ru
Вверх блин :) Вверх блин :)