Рекурсивная распаковка
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Iori
В принципе, это нормально, т.к. это всего лишь оболочка к 7z.exe. Единственное, там могут быть какие-то доп. процедуры добавлены типа тех, что вызывают конфуз.
Ладно, возьмём на заметку.
В принципе, это нормально, т.к. это всего лишь оболочка к 7z.exe. Единственное, там могут быть какие-то доп. процедуры добавлены типа тех, что вызывают конфуз.
Ладно, возьмём на заметку.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
С платниками не люблю возиться. Не вижу смысла при наличии более насыщенной 7-zip.Nick писал(а):Распаковать все выделенные архивы через WinRAR в активную панель.
Не сложнее и уж точно не дольше, а быстрее.Nick писал(а):Опционально:
Если архив уже содержит внутри такое же название папки как и самого архива, то применить распаковку в текущую папку, если нет – распаковать в папку с именем архива. Т.е. какая-то проверка еще до разархивирования.
(Но этот вариант, наверно сложнее и возможно дольше будет выполняться.)
Только вот далеко не всегда имя архива информативнее названия файла или папки, в нём содержащейся. Как тут быть? Можно по числу символов сравнивать, например.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Имеется ввиду в плане разархивирования?Flasher писал(а):С платниками не люблю возиться. Не вижу смысла при наличии более насыщенной 7-zip.
При наличии больших архивов и больших объемов данных думаю, что со своим форматом WinRAR справится быстрее.
Это верно, но зато сразу видно из какого архива было распаковано, а также, если внутри множество одиночных файлов (без папок), то они все не будут разбросаны в текущую папку.Flasher писал(а):Только вот далеко не всегда имя архива информативнее названия файла или папки, в нём содержащейся.
Такое нельзя, т.к. количество символов может быть одинаковое (эта опция нужна только для самой верхней папки). Поэтому - наверно только посимвольное сравнение. Т.е. просто, чтобы не было двух одинаковых папок в самом верху.Flasher писал(а):Как тут быть? Можно по числу символов сравнивать, например.
Желательно, чтобы была возможность отключить эту опцию.
Но тогда лучше просто переименовывать папку на архивное имя (либо склеивать оба). Зачем оставлять матрёшку?Nick писал(а):если нет – распаковать в папку с именем архива
В плане кол-ва поддерживаемых форматов. А то, что справится быстрее, - не факт.Nick писал(а):Имеется ввиду в плане разархивирования?
При наличии больших архивов и больших объемов данных думаю, что со своим форматом WinRAR справится быстрее.
А если архив уже удалён?Nick писал(а):Это верно, но зато сразу видно из какого архива было распаковано
Так было давно, ещё начиная со второго варианта. А вообще под одиночным может пониматься только 1 файл в папке.Nick писал(а):если внутри множество одиночных файлов (без папок), то они все не будут разбросаны в текущую папку
А сперва и будет проверятся название, а уже потом число символов после несовпадения.Nick писал(а):Такое нельзя, т.к. количество символов может быть одинаковое
Если архивы с одним базовым именем, то папка одна будет. В распаковщиках нет инструмента автопереименования родительских папок, т.к. это всего лишь часть полного имени файла.Nick писал(а):Т.е. просто, чтобы не было двух одинаковых папок в самом верху.
И как с одиночным файлом быть? Оставить как в 3 параметре или тоже исходить из имени?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Если использовать переименование, то тогда потеряется название первой папки внутри архива. Это необходимо, например, если разархивируются какие-то программы, где важны названия папок и структура. Т.е. так более универсально.Flasher писал(а):Но тогда лучше просто переименовывать папку на архивное имя (либо склеивать оба). Зачем оставлять матрёшку?
Например:
Архив.rar/Папка в архиве (1)\Папка в архиве (2)\file.exe
В этом случае распаковать содержимое в папку «Архив».
Если архив такой:
Новая папка (1).rar/Новая папка (1)\Новая папка (2)\file.exe
То, тогда распаковать в текущий каталог.
Тогда не особо важно.Flasher писал(а):А то, что справится быстрее, - не факт.
Тогда сохранится название папки (а значит и архив назывался также).Flasher писал(а):А если архив уже удалён?
Имеется ввиду 2-ой вариант скрипта?Flasher писал(а):Так было давно, ещё начиная со второго варианта.
Но, ведь достаточно до первого несовпадения, а дальше можно уже не проверять. Так будет быстрее.Flasher писал(а):А сперва и будет проверятся название, а уже потом число символов после несовпадения.
Это, как я понимаю случай, когда в одной папке архивы с одинаковыми именами, но разных форматов. Тогда, наверно логично добавить что-то в имя папки.Flasher писал(а):Если архивы с одним базовым именем, то папка одна будет.
Например:
Новая папка.rar
Новая папка.7z
Тогда названия папок будут:
Новая папка_rar
Новая папка_7z
Имеется ввиду полного пути к файлу?Flasher писал(а):В распаковщиках нет инструмента автопереименования родительских папок, т.к. это всего лишь часть полного имени файла.
С одиночными файлами, то тогда папка по названию архива.Flasher писал(а):И как с одиночным файлом быть?
Имеется ввиду этот параметр (<флаг удаления распакованных архивов: 1>)?Flasher писал(а):Оставить как в 3 параметре ?
Архив лучше не удалять.
Т.е. имеестя ввиду, если на самом верху одиночный файл, то тогда создавать или нет по его имени папку? Если это, то, лучше создавать.Flasher писал(а):или тоже исходить из имени
Ой, зачем такие отступы... 
Тут проверяется имя архива с именем одиночной папки. Всё. Если не совпали, то берём имя с большим числом символов.

Тогда вариант в скобках? Ибо матрёшка - плохой вариант.Nick писал(а):Если использовать переименование, то тогда потеряется название первой папки внутри архива.
Да. Начиная.Nick писал(а):Имеется ввиду 2-ой вариант скрипта?
А как тут может быть второе?Nick писал(а):Но, ведь достаточно до первого несовпадения, а дальше можно уже не проверять. Так будет быстрее.
Я же пишу, что нельзя.Nick писал(а):Тогда, наверно логично добавить что-то в имя папки.
Полное имя - это путь + имя.Nick писал(а):Имеется ввиду полного пути к файлу?
Для этого достаточно не использовать 3 параметр.Nick писал(а):С одиночными файлами, то тогда папка по названию архива.
Вообще-то этот 5-й. В шапке не видно?Nick писал(а):Имеется ввиду этот параметр (<флаг удаления распакованных архивов: 1>)?
Нет. Переименовать файл по имени архива или подклеить к имени.Nick писал(а):Т.е. имеестя ввиду, если на самом верху одиночный файл, то тогда создавать или нет по его имени папку?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Думал, может лучше видно будетFlasher писал(а):Ой, зачем такие отступы...
Возможно ли сделать так:Flasher писал(а):Тогда вариант в скобках? Ибо матрёшка - плохой вариант.
Если название архива совпадает с названием папки в архиве и если эта папка одна, то распаковать в текущую папку. Если нет - то распаковать по имени архива.
Например: Новый архив.rar/Архивная папка\... - Тогда в папку Новый архив.
Если одинаковые, то оставить одну.
Например: Новая папка.rar/Новая папка\... - Распаковать в текущий каталог (чтобы была только одна папка).
Но, если есть файл в архиве (на самом верху), то распаковать по имени архива.
Например: Новый архив.rar/file.txt и здесь же папка "Новый архив", то тогда все равно распаковать в папку "Новый архив".
Просто, это все приходится делать вручную, что при частой работе с архивами, очень неудобно (в том, числе проверять и перемещать все выше при дублировании одинаковых папок).
Просто, смотрел на другой скрипт.Flasher писал(а):Вообще-то этот 5-й. В шапке не видно?
Если внутри архива один файл, то тогда разархивировать в папку по имени архива (это желательно, опционально).Flasher писал(а):Переименовать файл по имени архива или подклеить к имени.
Мда.. Мы ходим вокруг да около.
Я предлагаю склейку имён при несовпадении вместо матрёшки. Сейчас этот вариант обсуждаем.
С файлом и так всё работает опционально.
Я предлагаю склейку имён при несовпадении вместо матрёшки. Сейчас этот вариант обсуждаем.
С файлом и так всё работает опционально.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Просто в этом случае, сложнее будет перепаковать папки с тем названием архива, которое было. (необходимо будет вручную переименовывать, а при большом количестве таких папок - довольно проблемно). Поэтому лучше все же "матрёшка".Flasher писал(а):Я предлагаю склейку имён при несовпадении вместо матрёшки.
Последний раз редактировалось Nick Вт дек 30, 2014 18:58, всего редактировалось 1 раз.
Iori
А я её и не добавлял туда, чтобы оставить.
Насчёт "лучше" - не совсем, т.к. с GUI скрипт будет спотыкаться на запароленных архивах, выдавая окно с вводом. А я исходил ещё из этого запроса. И, кстати, хорошо, что всплыло, т.к. я вовсе не предусмотрел удаление именно успешно распакованных архивов и удаление пустых папок в случае с запароленными или пустыми архивами. Добавлено.
А я её и не добавлял туда, чтобы оставить.
Насчёт "лучше" - не совсем, т.к. с GUI скрипт будет спотыкаться на запароленных архивах, выдавая окно с вводом. А я исходил ещё из этого запроса. И, кстати, хорошо, что всплыло, т.к. я вовсе не предусмотрел удаление именно успешно распакованных архивов и удаление пустых папок в случае с запароленными или пустыми архивами. Добавлено.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
