Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Рекурсивная распаковка
Goto page Previous  1, 2, 3, 4, 5, 6 ... 34, 35, 36  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Dec 26, 2014 13:42    Post subject: Reply with quote

Iori
В принципе, это нормально, т.к. это всего лишь оболочка к 7z.exe. Единственное, там могут быть какие-то доп. процедуры добавлены типа тех, что вызывают конфуз.
Ладно, возьмём на заметку.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Dec 29, 2014 19:03    Post subject: Reply with quote

Nick wrote:
Распаковать все выделенные архивы через WinRAR в активную панель.
С платниками не люблю возиться. Не вижу смысла при наличии более насыщенной 7-zip.

Nick wrote:
Опционально:
Если архив уже содержит внутри такое же название папки как и самого архива, то применить распаковку в текущую папку, если нет – распаковать в папку с именем архива. Т.е. какая-то проверка еще до разархивирования.
(Но этот вариант, наверно сложнее и возможно дольше будет выполняться.)
Не сложнее и уж точно не дольше, а быстрее.
Только вот далеко не всегда имя архива информативнее названия файла или папки, в нём содержащейся. Как тут быть? Можно по числу символов сравнивать, например.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Nick



Joined: 26 Dec 2014
Posts: 107

Post (Separately) Posted: Mon Dec 29, 2014 20:11    Post subject: Reply with quote

Flasher wrote:
С платниками не люблю возиться. Не вижу смысла при наличии более насыщенной 7-zip.

Имеется ввиду в плане разархивирования?
При наличии больших архивов и больших объемов данных думаю, что со своим форматом WinRAR справится быстрее.

Flasher wrote:
Только вот далеко не всегда имя архива информативнее названия файла или папки, в нём содержащейся.

Это верно, но зато сразу видно из какого архива было распаковано, а также, если внутри множество одиночных файлов (без папок), то они все не будут разбросаны в текущую папку.

Flasher wrote:
Как тут быть? Можно по числу символов сравнивать, например.

Такое нельзя, т.к. количество символов может быть одинаковое (эта опция нужна только для самой верхней папки). Поэтому - наверно только посимвольное сравнение. Т.е. просто, чтобы не было двух одинаковых папок в самом верху.
Желательно, чтобы была возможность отключить эту опцию.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Dec 29, 2014 20:24    Post subject: Reply with quote

Nick wrote:
если нет – распаковать в папку с именем архива
Но тогда лучше просто переименовывать папку на архивное имя (либо склеивать оба). Зачем оставлять матрёшку?
Nick wrote:
Имеется ввиду в плане разархивирования?
При наличии больших архивов и больших объемов данных думаю, что со своим форматом WinRAR справится быстрее.
В плане кол-ва поддерживаемых форматов. А то, что справится быстрее, - не факт.
Nick wrote:
Это верно, но зато сразу видно из какого архива было распаковано
А если архив уже удалён?
Nick wrote:
если внутри множество одиночных файлов (без папок), то они все не будут разбросаны в текущую папку
Так было давно, ещё начиная со второго варианта. А вообще под одиночным может пониматься только 1 файл в папке.
Nick wrote:
Такое нельзя, т.к. количество символов может быть одинаковое
А сперва и будет проверятся название, а уже потом число символов после несовпадения.
Nick wrote:
Т.е. просто, чтобы не было двух одинаковых папок в самом верху.
Если архивы с одним базовым именем, то папка одна будет. В распаковщиках нет инструмента автопереименования родительских папок, т.к. это всего лишь часть полного имени файла.
И как с одиночным файлом быть? Оставить как в 3 параметре или тоже исходить из имени?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Nick



Joined: 26 Dec 2014
Posts: 107

Post (Separately) Posted: Mon Dec 29, 2014 22:59    Post subject: Reply with quote

Flasher wrote:
Но тогда лучше просто переименовывать папку на архивное имя (либо склеивать оба). Зачем оставлять матрёшку?

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

Например:
Архив.rar/Папка в архиве (1)\Папка в архиве (2)\file.exe
В этом случае распаковать содержимое в папку «Архив».

Если архив такой:
Новая папка (1).rar/Новая папка (1)\Новая папка (2)\file.exe
То, тогда распаковать в текущий каталог.




Flasher wrote:
А то, что справится быстрее, - не факт.

Тогда не особо важно.


Flasher wrote:
А если архив уже удалён?

Тогда сохранится название папки (а значит и архив назывался также).



Flasher wrote:
Так было давно, ещё начиная со второго варианта.
Имеется ввиду 2-ой вариант скрипта?



Flasher wrote:
А сперва и будет проверятся название, а уже потом число символов после несовпадения.

Но, ведь достаточно до первого несовпадения, а дальше можно уже не проверять. Так будет быстрее.


Flasher wrote:
Если архивы с одним базовым именем, то папка одна будет.

Это, как я понимаю случай, когда в одной папке архивы с одинаковыми именами, но разных форматов. Тогда, наверно логично добавить что-то в имя папки.

Например:
Новая папка.rar
Новая папка.7z

Тогда названия папок будут:
Новая папка_rar
Новая папка_7z



Flasher wrote:
В распаковщиках нет инструмента автопереименования родительских папок, т.к. это всего лишь часть полного имени файла.

Имеется ввиду полного пути к файлу?

Flasher wrote:
И как с одиночным файлом быть?

С одиночными файлами, то тогда папка по названию архива.

Flasher wrote:
Оставить как в 3 параметре ?

Имеется ввиду этот параметр (<флаг удаления распакованных архивов: 1>)?
Архив лучше не удалять.
Flasher wrote:
или тоже исходить из имени

Т.е. имеестя ввиду, если на самом верху одиночный файл, то тогда создавать или нет по его имени папку? Если это, то, лучше создавать.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon Dec 29, 2014 23:23    Post subject: Reply with quote

Ой, зачем такие отступы...

Nick wrote:
Если использовать переименование, то тогда потеряется название первой папки внутри архива.
Тогда вариант в скобках? Ибо матрёшка - плохой вариант.
Nick wrote:
Имеется ввиду 2-ой вариант скрипта?
Да. Начиная.
Nick wrote:
Но, ведь достаточно до первого несовпадения, а дальше можно уже не проверять. Так будет быстрее.
А как тут может быть второе? Very Happy Тут проверяется имя архива с именем одиночной папки. Всё. Если не совпали, то берём имя с большим числом символов.
Nick wrote:
Тогда, наверно логично добавить что-то в имя папки.
Я же пишу, что нельзя.
Nick wrote:
Имеется ввиду полного пути к файлу?
Полное имя - это путь + имя.
Nick wrote:
С одиночными файлами, то тогда папка по названию архива.
Для этого достаточно не использовать 3 параметр.
Nick wrote:
Имеется ввиду этот параметр (<флаг удаления распакованных архивов: 1>)?
Вообще-то этот 5-й. В шапке не видно?
Nick wrote:
Т.е. имеестя ввиду, если на самом верху одиночный файл, то тогда создавать или нет по его имени папку?
Нет. Переименовать файл по имени архива или подклеить к имени.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Nick



Joined: 26 Dec 2014
Posts: 107

Post (Separately) Posted: Tue Dec 30, 2014 15:29    Post subject: Reply with quote

Flasher wrote:
Ой, зачем такие отступы...
Думал, может лучше видно будет Wink.
Flasher wrote:
Тогда вариант в скобках? Ибо матрёшка - плохой вариант.
Возможно ли сделать так:
Если название архива совпадает с названием папки в архиве и если эта папка одна, то распаковать в текущую папку. Если нет - то распаковать по имени архива.
Например: Новый архив.rar/Архивная папка\... - Тогда в папку Новый архив.
Если одинаковые, то оставить одну.
Например: Новая папка.rar/Новая папка\... - Распаковать в текущий каталог (чтобы была только одна папка).
Но, если есть файл в архиве (на самом верху), то распаковать по имени архива.
Например: Новый архив.rar/file.txt и здесь же папка "Новый архив", то тогда все равно распаковать в папку "Новый архив".
Просто, это все приходится делать вручную, что при частой работе с архивами, очень неудобно (в том, числе проверять и перемещать все выше при дублировании одинаковых папок).
Flasher wrote:
Вообще-то этот 5-й. В шапке не видно?
Просто, смотрел на другой скрипт.
Flasher wrote:
Переименовать файл по имени архива или подклеить к имени.
Если внутри архива один файл, то тогда разархивировать в папку по имени архива (это желательно, опционально).
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Dec 30, 2014 16:59    Post subject: Reply with quote

Мда.. Мы ходим вокруг да около.
Я предлагаю склейку имён при несовпадении вместо матрёшки. Сейчас этот вариант обсуждаем.
С файлом и так всё работает опционально.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Nick



Joined: 26 Dec 2014
Posts: 107

Post (Separately) Posted: Tue Dec 30, 2014 18:04    Post subject: Reply with quote

Flasher wrote:
Я предлагаю склейку имён при несовпадении вместо матрёшки.
Просто в этом случае, сложнее будет перепаковать папки с тем названием архива, которое было. (необходимо будет вручную переименовывать, а при большом количестве таких папок - довольно проблемно). Поэтому лучше все же "матрёшка". Wink

Last edited by Nick on Tue Dec 30, 2014 19:58; edited 1 time in total
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Dec 30, 2014 18:42    Post subject: Reply with quote

ОК. Поправил.
Add: кое-что важное изменил в одной строке.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Nick



Joined: 26 Dec 2014
Posts: 107

Post (Separately) Posted: Tue Dec 30, 2014 22:38    Post subject: Reply with quote

Вроде, работает. Большое спасибо и с наступающим новым годом!
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Dec 30, 2014 22:42    Post subject: Reply with quote

См. дописку (я там скобки переставил).
Спасибо. Также - с наступающим!
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Nick



Joined: 26 Dec 2014
Posts: 107

Post (Separately) Posted: Tue Dec 30, 2014 22:58    Post subject: Reply with quote

Исправил, тоже вроде, нормально работает. Wink
Back to top
View user's profile Send private message
Iori



Joined: 25 Apr 2012
Posts: 551

Post (Separately) Posted: Wed Dec 31, 2014 07:25    Post subject: Reply with quote

Flasher

А почему вы в вашем обновленном скрипте не оставили 7zG.exe.
Я думал с процессом лучше было вроде. Smile
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed Dec 31, 2014 17:03    Post subject: Reply with quote

Iori
А я её и не добавлял туда, чтобы оставить. Smile
Насчёт "лучше" - не совсем, т.к. с GUI скрипт будет спотыкаться на запароленных архивах, выдавая окно с вводом. А я исходил ещё из этого запроса. И, кстати, хорошо, что всплыло, т.к. я вовсе не предусмотрел удаление именно успешно распакованных архивов и удаление пустых папок в случае с запароленными или пустыми архивами. Добавлено. Smile
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3, 4, 5, 6 ... 34, 35, 36  Next
Page 5 of 36

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group