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 ... 10, 11, 12 ... 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: Mon Mar 06, 2017 18:38    Post subject: Reply with quote

Nick
Это код в результате ext1 покажет?:
Code:
With CreateObject("Scripting.FileSystemObject")
  MsgBox .GetExtensionName(.GetBaseName("C:\FileName.ext3.ext2.ext1.ext"))
End With

Nick wrote:
при распаковке одиночных элементов не перемещается в папку до полного пути, видимо, срабатывает ограничение в 260 символов в пути.
С одиночников я тесты и начинаю. Ограничения этого там нет, как и написано снизу wiki-страницы. С каким путём такая проблема?
А-а.. Это о переходе к файлу разговор, а не о перемещении. На 9-ке эту проблему Гислер исправил.
Если вернуться к моей строке с правильным путём до TCFS2, то будет работать и на 8.52a.
_________________
Автору сборки 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 Mar 07, 2017 17:55    Post subject: Reply with quote

Flasher
Показывает ext1.
---------------------------
ext1
---------------------------
Но, почему-то именно при таких параметрах (%WL docx.rar|xlsx.rar|html.rar 1 s 1) распаковка не происходит (ни на длинном пути, ни на коротком пути).

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

Или можно взять и обновить сам TC, тогда, можно использовать более новую версию скрипта и без утилиты TCFS2...
Flasher wrote:
На 9-ке эту проблему Гислер исправил.
Странно, что при этом почему-то виноват сам TC?
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Tue Mar 07, 2017 18:04    Post subject: Reply with quote

Nick wrote:
именно при таких параметрах
7z.exe давно обновлялась? Я проверил. Никаких проблем не испытываю. Стою на файле C:\Temp\FileName.html.rar, выполняю - открывается папка с файлами C:\Temp\FileName.html.
Nick wrote:
Я так понял, что, если взять эту старую версию
Нет. Я же пишу конкретно про строку (а не весь код), которую можно заменить, чтобы не обновлять ТС, если не требуется.
Nick wrote:
Странно, что при этом почему-то виноват сам TC?
Потому что ... гладио... %COMMANDER_EXE%. Да и вообще за навигацию в ТС ничто кроме него отвечать не может. Логика Exclamation
_________________
Автору сборки 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 Mar 07, 2017 19:46    Post subject: Reply with quote

Flasher wrote:
7z.exe давно обновлялась? Я проверил. Никаких проблем не испытываю.
У меня вроде бы стоит последняя версия 7z.exe (16.4.0.0). При параметрах %WL htm.rar 1 s 1 распаковка происходит нормально (также и с doc.rar и xls.rar), а если стоит html.rar или docx.rar, xlsx.rar, manifest.rar, zipx.rar - ничего не распаковывает... В чем может быть проблема???

Flasher wrote:
Я же пишу конкретно про строку (а не весь код)
Но, в последней версии скрипта распаковки архивов вообще нет строки с "WSH.Exec"?
Flasher wrote:
за навигацию в ТС ничто кроме него отвечать не может
В данном случае ведь скрипт и управляет навигацией...
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Tue Mar 07, 2017 20:20    Post subject: Reply with quote

Nick wrote:
В чем может быть проблема?
Думаю, в этом.
Nick wrote:
вообще нет строки с "WSH.Exec"?
Вместо H теперь там S.
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: Thu Mar 09, 2017 14:36    Post subject: Reply with quote

Flasher
Теперь, вроде бы нормально работает и с указанными расширениями. Какие строки нужно заменить, чтобы папка не создавалась по имени архива?

Flasher wrote:
выполнить имеющуюся команду
Имеется в виду команды самого скрипта?
Flasher wrote:
или послать сообщение в окно
Сообщения вроде бы всегда появляются в отдельных окнах, которые создает процесс "wscript.exe". А вот управлять окнами самого TC через скрипт вроде бы нельзя. Только может быть через какие-то сторонние утилиты, которые потом бы возвращали какие-либо значения, которые и передавались бы в сам скрипт...
Т.е., насколько я знаю, скрипт должен ждать, пока утилита не вернет какое-либо значение, а затем продолжить свою работу. При этом в самом срипте должны быть команды для межпроцессного взаимодействия (чтобы можно было получить параметры из другой утилиты).
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Thu Mar 09, 2017 14:52    Post subject: Reply with quote

Nick wrote:
Какие строки нужно заменить, чтобы папка не создавалась по имени архива?
А по какому же ещё имени она должна создаваться? Если в архиве одна папка, то она на имя архива не меняется.
Nick wrote:
Имеется в виду команды самого скрипта?
Нет. Имеется в виду команда запуска ТС с его параметрами из комстроки (1, 2), как в текущем варианте. Вот, кстати, это исправление во второй бете:
History.txt wrote:
13.06.16 Fixed: Command line parameters: Accept path+file name longer than 259 characters (32/64)

Nick wrote:
Сообщения вроде бы всегда появляются в отдельных окнах
Речь не об окнах с сообщениями, а о посыле сообщения окну ТС через SendMessage/PostMessage, как это делается в TCFS2 и некоторых др. утилитах.
Кстати говоря, строку всё-таки стоило уточнить:
Code:
  WSS.Exec """%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe"" /ef ""tcd(<`" & Replace(It, "\\?\", "") & "\:`>,,S)"""

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



Joined: 26 Dec 2014
Posts: 107

Post (Separately) Posted: Wed Mar 15, 2017 17:01    Post subject: Reply with quote

Flasher
Flasher wrote:
Кстати говоря, строку всё-таки стоило уточнить
Т.е. эту строку в последней версии скрипта:
Code:
WSS.Exec "%COMMANDER_EXE% /A /S /O /L=""" & Replace(It, "\\?\", "") & """"
Можно заменить на эту:
Code:
 WSS.Exec """%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe"" /ef ""tcd(<`" & Replace(It, "\\?\", "") & "\:`>,,S)"""
И тогда проблем с переходом к распакованным файлам (в случае распаковки одиночных архивов) быть не должно?

Flasher wrote:
Если в архиве одна папка, то она на имя архива не меняется
Это верно. Но, я имею в виду случай, когда в архиве содержатся несколько папок и/или файлов. Т.е. чтобы была возможность просто распаковать содержимое архива без создания новых папок (по имени архива). Это удобно, чтобы можно было, например, восстановить такую же структуру каталогов с файлами, которая была до их упаковки.

В этом случае какие строки нужно изменить?
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Wed Mar 15, 2017 17:50    Post subject: Reply with quote

Nick wrote:
И тогда проблем с переходом к распакованным файлам (в случае распаковки одиночных архивов) быть не должно?
А это точно нуждается в подтверждении? Может, всё-таки стоило сперва самому опробовать? Wink И с 9-кой, как было выше указано, проблем и так нет.

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



Joined: 26 Dec 2014
Posts: 107

Post (Separately) Posted: Wed Mar 15, 2017 18:43    Post subject: Reply with quote

Flasher
Но, меня именно интересует распаковка с возможностью выбора архивов по расширениям (к примеру с двойными расширениями) и извлечение их содержимого без создания папки по имени архива. Это производится сразу на большом количестве папок и файлов.
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Wed Mar 15, 2017 19:03    Post subject: Reply with quote

Nick
И в чем проблема? 7zG.exe x *.html.zip -y
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Nick



Joined: 26 Dec 2014
Posts: 107

Post (Separately) Posted: Sat Mar 25, 2017 21:01    Post subject: Reply with quote

Flasher
Flasher wrote:
И в чем проблема? 7z.exe x *.html.zip -y
А можно более подробно и с конкретным примером... Wink
Т.е. мне надо, чтобы:
- Была возможность указания нескольких расширений (в том числе и двойные).
- Возможность распаковки в структуре файлов и каталогов.
- Удаление архива (только при удачной распаковке).

Это можно реализовать в одной кнопке и без данного скрипта?
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Sat Mar 25, 2017 21:35    Post subject: Reply with quote

Nick
Это и есть конкретный пример. Все .html.zip будут распакованы в рабочем каталоге. Указание пути к 7z.exe и очистка пути запуска, полагаю, не требует пояснений.
Кнопку с cmd сделать - не проблема. Я привёл тематическую ссылку для обсуждения.
Правда я не понимаю, зачем это в структуре делать, если каждый архив в рабочей папке сам должен содержать структуру, требующую сохранности?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Nick



Joined: 26 Dec 2014
Posts: 107

Post (Separately) Posted: Thu Mar 30, 2017 12:27    Post subject: Reply with quote

Flasher wrote:
и очистка пути запуска, полагаю, не требует пояснений.
А вот это важное замечание. Без этого работать кнопка не будет.
Flasher wrote:
каждый архив в рабочей папке сам должен содержать структуру, требующую сохранности?
Ведь не всегда в архивах хранится нужная структура. Иногда там просто собраны наборы файлов и папок, которые нужно потом (после разархивирования) структурировать.
Flasher wrote:
зачем это в структуре делать
Это для того, чтобы можно было восстановить исходную структуру каталогов, которая была до упаковки.
Back to top
View user's profile Send private message
Nick



Joined: 26 Dec 2014
Posts: 107

Post (Separately) Posted: Wed Apr 05, 2017 17:53    Post subject: Reply with quote

Спасибо за данный скрипт и отдельное спасибо за длинные пути.

 P.S. Прочее
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 ... 10, 11, 12 ... 34, 35, 36  Next
Page 11 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