| Другое > Hard'n'Soft |
| пакетное архивирование |
| (1/1) |
| urasan:
Итак, задача: Имеется много папок с файлами (без подпапок), надо сделать из них архивы, но так, чтоб внутри этих архивов никаких папок не было, только файлы. И все это автоматом, с сохранением имен всех папок. Никогда таким не занимался и не знаю, какая нужна прога. Если кто знает, напишите не только название, но и последовательность действий. Заранее спасибо |
| HoRRoR:
Можно bat-сценарий написать (или bash), который обходит папки и говорит пакующей утилите что делать. Под вин32 ещё вариант - vbscript, там возможностей больше, чем в bat, и работает он тоже нативно. |
| urasan:
Ну да, а перед этим выучиться на программиста, чтобы знать, что такое bat (кроме летучей мыши) и как писать сценарии. Мне б что-нибудь попроще... :-\ |
| HoRRoR:
В какие архивы тебе надо паковать (zip/rar/7z/...)? Напишу. |
| GManiac:
Пример для рара. Для 7-зипа либо надо копать гуи, либо в опциях ковыряться. |
| HoRRoR:
Пример скрипта для 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:
GManiac, думаю, это то, что надо, попробую. HoRRoR, ешкин кот, я даже не знаю, куда это вставить. Но, все равно, спасибо большое! |
| Dr.Yukon:
Во имя Ктулху, пусть оживёт этот тред! Мдя, только нашёл тему, в которой есть чем похвалиться в области скриптописания (Автоит), а тут готовый батник :lol: Хотя некоторые проблемы в нём есть. Если в названиях папок есть хоть один иероглиф или процент - проблем не избежать. Неизбежная проблема DOS. Кроме того, в батник придётся лазить каждый раз, чтобы поправить входящую и исходящую папки. Можно было бы вынести в prompt-запросы к пользователю *). Также на строке "if exist" производится деструктивное действие - если архив уже существует, вместо чтоб добавить к новому архиву счётчик, убивается старый архив 0_0 *) типа такого: SET /P AREYOUSURE=Are you sure (Y/[N])? IF /I "%AREYOUSURE%" NEQ "Y" нужные действия |
| Навигация |
| Главная страница сообщений |