Пакетное архивирование

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
shveicar
Сообщения: 277
Зарегистрирован: Пн апр 18, 2011 01:54
Откуда: Россия Москва

Сообщение shveicar »

Flasher писал(а):Установка для 7zip - это всего лишь распаковка. Достаточно в папку в TC скинуть файлы dll. sfx, 7zip.exe - и будет портабельный вариант
Спасибо, Разобрался - просто распаковщика, под рукой не было. С 7zip скрипт работает, так все-же, как помещать готовые архивы в те-же папки, что и исходники? или для этого лучше сделать отдельный вариант скрипта?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Я же написал как. Ошибся насчёт файлов, всё будет ок, исправил по ссылке. В самом коде не меняю, т.к. считаю такой подход неприемлемым в качестве общего.
Flasher писал(а):С rar, увы, придётся смириться.
Пардон, думал, что с полными путями не работает. Надо убрать красное в строке
Param = "a " & S & " """ & Path & Name & """ """ & FSO.GetFileName(F) & """"
В посте с кодом поправил.
Последний раз редактировалось Flasher Пт авг 05, 2011 17:45, всего редактировалось 1 раз.
Аватара пользователя
shveicar
Сообщения: 277
Зарегистрирован: Пн апр 18, 2011 01:54
Откуда: Россия Москва

Сообщение shveicar »

Flasher писал(а):Пардон, думал, что с полными путями не работает. Надо убрать красное в строке
Вот теперь другое дело, а то я чувствовал, что что-то, здесь не так! Ну главное - теперь все работает, заодно и с 7zip разобрался. Не проверял пока, на больших файлах, но думаю тоже будет порядок, если что - напишу. Большое спасибо.

Добавлено спустя 1 час 27 минут:

И еще вопрос, вот здесь
Flasher писал(а):Я же написал как
при замене

Код: Выделить всё

            Param = "a """ & PF & ""  & Name & """" & Str & S
            Else
            Pr = RAR
            Param = "a -ep1" & S & " """ & PF & ""  & Name & """" & Str
получается, что внутри папок с вложенными файлами (глубина вложенности-1, если больше, то идет упаковка с папками) создаются архивы с именами папок а не самих- файлов, а это не есть хорошо, конечно можно потом, задействовать групповое переименование, но если есть возможность сразу решить этот вопрос, будет намного удобнее, и по поводу глубины вложенности-( можно ли это изменить) хотелось бы создавать архивы с именами файлов в папках с глубиной вложенности больше одного.(или, проще говоря- упаковывать файлы из самой последней по глубине, папки) Спасибо.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

shveicar писал(а):глубина вложенности-1, если больше, то идет упаковка с папками
Я писал как это исправить.
shveicar писал(а):создаются архивы с именами папок а не самих- файлов, а это не есть хорошо
Не понял. Правильная логика: папка одна - имя одно. Неправильная логика: файлов много - имя одно.
shveicar писал(а):и по поводу глубины вложенности-( можно ли это изменить) хотелось бы создавать архивы с именами файлов в папках с глубиной вложенности больше одного.(или, проще говоря- упаковывать файлы из самой последней по глубине, папки)
Опять путано. Глубина вложенности может быть разная, и то, что "больше одного" не означает, что речь идёт о самой последней по глубине.
Во всяком случае сейчас пока на рекурсию времени нет, потом как-нибудь.
Аватара пользователя
shveicar
Сообщения: 277
Зарегистрирован: Пн апр 18, 2011 01:54
Откуда: Россия Москва

Сообщение shveicar »

Flasher писал(а):Не понял. Правильная логика: папка одна - имя одно. Неправильная логика: файлов много - имя одно.
С этим ясно, но я говорю, что имя архива берется не из имени файла,( по логике), а из имени папки. Пример - каталог с вложенными файлами под курсором, выделяем его, жмем кнопку,(вариант скрипта с

Код: Выделить всё

For Each FF in PF.SubFolders
Str = Str & " """ & FF & """"
Next
If Len(Filt) > 0 Then Str = ""
) и создается внутри папки - архив, с именем папки и с вложенными в него файлами. По идее должно быть так, - каталог с вложенными файлами под курсором, выделяем его, жмем кнопку, и создаются внутри папки - архивы, с именами файлов.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

shveicar писал(а):но я говорю, что имя архива берется не из имени файла,( по логике), а из имени папки.
Какого файла? Файлов много в папке! И все они упаковываются в один архив. Тут логика самая что ни на есть верная.
shveicar писал(а):создаются внутри папки - архивы, с именами файлов
Это уже другая реализация. См. название скрипта.
Аватара пользователя
shveicar
Сообщения: 277
Зарегистрирован: Пн апр 18, 2011 01:54
Откуда: Россия Москва

Сообщение shveicar »

Flasher писал(а):Это уже другая реализация. См. название скрипта.
Смотрю и думаю, где-же в названии это прописано?
Упаковать каждый файл или содержимое каждой папки в отдельный архив
Тогда стоило назвать так-
Упаковать содержимое каждой папки в отдельный архив
...Ну если будет возможность, добавьте пожалуйста реализацию - Упаковать каждый файл в свой архив.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

shveicar писал(а):Тогда стоило назвать так-
Максимум, что тут стоило - это поменять "или" на "и", хотя это сути не меняет.
shveicar писал(а):Ну если будет возможность, добавьте пожалуйста реализацию - Упаковать каждый файл в свой архив
Она уже есть. Упаковывается каждый выделенный файл в свой архив. Выше обсуждалась правка касаемо именно отдельных файлов (поиск/BranchView).
Аватара пользователя
shveicar
Сообщения: 277
Зарегистрирован: Пн апр 18, 2011 01:54
Откуда: Россия Москва

Сообщение shveicar »

Flasher писал(а):Выше обсуждалась правка касаемо именно отдельных файлов (поиск/BranchView)
Да, но только архивы создаются не там где исходные файлы, ну да ладно, буду потом использовать скрипт перемещения, чтобы вернуть их туда где лежат исходники (хотя удалить исходники, после архивации проще чем настроить перемещение). Конечно скрипт удобный, но дополнения бы ему не помешали, ну да ладно, подожду рекурсии. Спасибо.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

shveicar писал(а):Да, но только архивы создаются не там где исходные файлы.
В обычном режиме достаточно в качестве пути назначения прописать "%P" - приведено в примерах, а для остальных режимов нужно после

Код: Выделить всё

      If FSO.FileExists(F) Then
вставить строку

Код: Выделить всё

        N = FSO.GetFile(F)
и заменить Path на N.ParentFolder & "" в первых двух связках Path & Name.
shveicar писал(а):ну да ладно, подожду рекурсии
По рекурсии лучше отдельный скрипт написать, например, "Рекурсивная пофайловая упаковка", если такой подход вообще устроит. Каждый файл на любой глубине выделенных папок будет паковаться в отдельный архив рядом с исходником.
Аватара пользователя
shveicar
Сообщения: 277
Зарегистрирован: Пн апр 18, 2011 01:54
Откуда: Россия Москва

Сообщение shveicar »

Спасибо за совет, но у меня получается "замкнутый круг". Изначально моя задача была вроде бы простой - выделить 30 каталогов со вложенными папками в которых находятся видео файлы, и упаковать их в то-же место где и исходники, причем каждый видео файл в свой архив, иначе размер архива - слишком большой, -(почему-то это считается кривым подходом, ну да ладно), далее через "поиск" я находил все файлы которые помещались в архивы и удалял их (в принципе, удаление можно использовать для каждого файла при архивации, но для страховки проще так). Вот в принципе и все. Здесь-же получился другой вариант, и вот я его пытаюсь приспособить под свои нужды и получается - то имена архивов берутся из папок, то (при тестировании) все файлы помещаются все в один архив, а теперь вот и с путями любые варианты кроме того который нужен. Жаль, что я изначально не полностью обрисовал Т.З. Ну да ладно,
Flasher писал(а):shveicar, пляши!
Рад бы сплясать, да башмаки жмут!
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

shveicar писал(а):Здесь-же получился другой вариант, и вот я его пытаюсь приспособить под свои нужды и получается - то имена архивов берутся из папок, то (при тестировании) все файлы помещаются все в один архив, а теперь вот и с путями любые варианты кроме того который нужен.
По выделенным папкам я пока ничего не предлагал, только по файлам. См. опять же контекст обсуждаемого. Если именно о выделенных файлах речь, то в один архив могут положиться только те файлы, которые лежать в одной папке и имеют одно базовое имя. Чтобы этого не происходило можно в скрипте Bas поменять на Fil, тогда в качестве базовых имён архивов будут подставляться полные имена файлов.
shveicar писал(а):Жаль, что я изначально не полностью обрисовал Т.З. Ну да ладно,
А вот и не ладно. На будущее сообщаю, что ТЗ надо формировать изначально полностью со всеми недосказанностями, поправками и желательно с использованием верной терминалогии. Сухо, последовательно и понятно. Если не получается грамотно выстроить картинку желаемого, лучше переспросить в личке. Любой необжиданно родившийся нюанс может повлиять на картину кода, значительную часть которого придётся перекраивать.

Поэтому логичным было бы по теме рекурсии изложить попунктно всё необходимое: фильтрация, с папками/без, места складирования архивов (общее или в соответствии с текущим местоположением), глубина вложенности.
Аватара пользователя
shveicar
Сообщения: 277
Зарегистрирован: Пн апр 18, 2011 01:54
Откуда: Россия Москва

Сообщение shveicar »

Извиняюсь за не пунктуальность. На будущее учту.
Аватара пользователя
shveicar
Сообщения: 277
Зарегистрирован: Пн апр 18, 2011 01:54
Откуда: Россия Москва

Сообщение shveicar »

Добрый день. Виду того, что Автор скрипта в этой теме считает свою задачу исчерпывающей. Мне остается надеется, что в новой теме, для моей просьбы будет создан скрипт, возможно аналогичный этому скрипту. На всякий случай создаю отдельную тему Рекурсивная пофайловая упаковка". Заранее благодарен.
Последний раз редактировалось shveicar Сб авг 06, 2011 20:35, всего редактировалось 1 раз.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

shveicar писал(а):Добрый день. Виду того, что Автор скрипта считает свою задачу исчерпывающей
Моя задача будет исчерпана до тех пор пока все написанное мной перестанет игнорироваться. Об остальном я уже написал выше. В частности:
Flasher писал(а):По рекурсии лучше отдельный скрипт написать, например, "Рекурсивная пофайловая упаковка", если такой подход вообще устроит. Каждый файл на любой глубине выделенных папок будет паковаться в отдельный архив рядом с исходником.
Ответить