Автор Тема: пакетное архивирование  (Прочитано 5181 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн urasan

  • Пользователь
  • Сообщений: 95
  • Пол: Мужской
    • Просмотр профиля
пакетное архивирование
« : 22 Февраль 2011, 20:32:36 »
Итак, задача:
Имеется много папок с файлами (без подпапок), надо сделать из них архивы, но так, чтоб внутри этих архивов никаких папок не было, только файлы. И все это автоматом, с сохранением имен всех папок.
Никогда таким не занимался и не знаю, какая нужна прога. Если кто знает, напишите не только название, но и последовательность действий. Заранее спасибо

Оффлайн HoRRoR

  • Пользователь
  • Сообщений: 983
  • Пол: Мужской
  • Ромхакер
    • Просмотр профиля
Re: пакетное архивирование
« Ответ #1 : 22 Февраль 2011, 21:53:30 »
Можно bat-сценарий написать (или bash), который обходит папки и говорит пакующей утилите что делать. Под вин32 ещё вариант - vbscript, там возможностей больше, чем в bat, и работает он тоже нативно.

Оффлайн urasan

  • Пользователь
  • Сообщений: 95
  • Пол: Мужской
    • Просмотр профиля
Re: пакетное архивирование
« Ответ #2 : 22 Февраль 2011, 22:25:24 »
Ну да, а перед этим выучиться на программиста, чтобы знать, что такое bat (кроме летучей мыши) и как писать сценарии. Мне б что-нибудь попроще... :-\

Оффлайн HoRRoR

  • Пользователь
  • Сообщений: 983
  • Пол: Мужской
  • Ромхакер
    • Просмотр профиля
Re: пакетное архивирование
« Ответ #3 : 22 Февраль 2011, 22:29:18 »
В какие архивы тебе надо паковать (zip/rar/7z/...)? Напишу.

Оффлайн GManiac

  • Пользователь
  • Сообщений: 1284
    • Просмотр профиля
Re: пакетное архивирование
« Ответ #4 : 22 Февраль 2011, 22:34:53 »
Пример для рара. Для 7-зипа либо надо копать гуи, либо в опциях ковыряться.

Оффлайн HoRRoR

  • Пользователь
  • Сообщений: 983
  • Пол: Мужской
  • Ромхакер
    • Просмотр профиля
Re: пакетное архивирование
« Ответ #5 : 22 Февраль 2011, 23:05:39 »
Пример скрипта для rar, под zip/7z переделать нетрудно:
@echo off

rem Путь к архиватору
set arc=C:\Program Files\WinRar\rar.exe

rem Путь к папке с исходными директориями
set src=C:\src

rem Путь к папке, куда будут помещены выходные файлы
set dest=C:\dest

rem Расширение выходных файлов
set ext=rar

rem -------------------------------------

cd %src%
for /D %%d in (*) do (
echo Compressing %%d.rar...
if exist "%dest%\%%d.%ext%" del /Q /F "%dest%\%%d.%ext%"
"%arc%" a -ep1 -m5 "%dest%\%%d.%ext%" "%src%\%%d" > NUL
)

echo Done!


Оффлайн urasan

  • Пользователь
  • Сообщений: 95
  • Пол: Мужской
    • Просмотр профиля
Re: пакетное архивирование
« Ответ #6 : 24 Февраль 2011, 21:49:14 »
GManiac, думаю, это то, что надо, попробую.
HoRRoR, ешкин кот, я даже не знаю, куда это вставить. Но, все равно, спасибо большое!

Оффлайн Dr.Yukon

  • Пользователь
  • Сообщений: 8
  • Пол: Мужской
  • Rainbow_Spike
    • Просмотр профиля
Re: пакетное архивирование
« Ответ #7 : 01 Май 2015, 05:06:04 »
Во имя Ктулху, пусть оживёт этот тред!

Мдя, только нашёл тему, в которой есть чем похвалиться в области скриптописания (Автоит), а тут готовый батник  :lol:

Хотя некоторые проблемы в нём есть. Если в названиях папок есть хоть один иероглиф или процент - проблем не избежать. Неизбежная проблема DOS. Кроме того, в батник придётся лазить каждый раз, чтобы поправить входящую и исходящую папки. Можно было бы вынести в prompt-запросы к пользователю *). Также на строке "if exist" производится деструктивное действие - если архив уже существует, вместо чтоб добавить к новому архиву счётчик, убивается старый архив  0_0

*) типа такого:
SET /P AREYOUSURE=Are you sure (Y/[N])?
IF /I "%AREYOUSURE%" NEQ "Y" нужные действия