Рекурсивная распаковка
Select messages from
# through # FAQ
[/[Print]\]
Goto page Previous  1, 2, 3 ... 10, 11, 12 ... 34, 35, 36  Next  :| |:
Total Commander -> Автоматизация Total Commander

#151:  Author: FlasherLocation: Москва PostPosted: Mon Mar 06, 2017 18:38
    —
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.

#152:  Author: Nick PostPosted: Tue Mar 07, 2017 17:55
    —
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?

#153:  Author: FlasherLocation: Москва PostPosted: Tue Mar 07, 2017 18:04
    —
Nick wrote:
именно при таких параметрах
7z.exe давно обновлялась? Я проверил. Никаких проблем не испытываю. Стою на файле C:\Temp\FileName.html.rar, выполняю - открывается папка с файлами C:\Temp\FileName.html.
Nick wrote:
Я так понял, что, если взять эту старую версию
Нет. Я же пишу конкретно про строку (а не весь код), которую можно заменить, чтобы не обновлять ТС, если не требуется.
Nick wrote:
Странно, что при этом почему-то виноват сам TC?
Потому что ... гладио... %COMMANDER_EXE%. Да и вообще за навигацию в ТС ничто кроме него отвечать не может. Логика Exclamation

#154:  Author: Nick PostPosted: Tue Mar 07, 2017 19:46
    —
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:
за навигацию в ТС ничто кроме него отвечать не может
В данном случае ведь скрипт и управляет навигацией...

#155:  Author: FlasherLocation: Москва PostPosted: Tue Mar 07, 2017 20:20
    —
Nick wrote:
В чем может быть проблема?
Думаю, в этом.
Nick wrote:
вообще нет строки с "WSH.Exec"?
Вместо H теперь там S.
Nick wrote:
В данном случае ведь скрипт и управляет навигацией.
Скрипт может разве только выполнить имеющуюся команду или послать сообщение в окно, а вот за результат навигации всегда будет отвечать само приложение.

#156:  Author: Nick PostPosted: Thu Mar 09, 2017 14:36
    —
Flasher
Теперь, вроде бы нормально работает и с указанными расширениями. Какие строки нужно заменить, чтобы папка не создавалась по имени архива?

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

#157:  Author: FlasherLocation: Москва PostPosted: Thu Mar 09, 2017 14:52
    —
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.

#158:  Author: Nick PostPosted: Wed Mar 15, 2017 17:01
    —
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:
Если в архиве одна папка, то она на имя архива не меняется
Это верно. Но, я имею в виду случай, когда в архиве содержатся несколько папок и/или файлов. Т.е. чтобы была возможность просто распаковать содержимое архива без создания новых папок (по имени архива). Это удобно, чтобы можно было, например, восстановить такую же структуру каталогов с файлами, которая была до их упаковки.

В этом случае какие строки нужно изменить?

#159:  Author: FlasherLocation: Москва PostPosted: Wed Mar 15, 2017 17:50
    —
Nick wrote:
И тогда проблем с переходом к распакованным файлам (в случае распаковки одиночных архивов) быть не должно?
А это точно нуждается в подтверждении? Может, всё-таки стоило сперва самому опробовать? Wink И с 9-кой, как было выше указано, проблем и так нет.

Nick wrote:
Т.е. чтобы была возможность просто распаковать содержимое архива
В этом случае скрипт теряет всякий смысл, т.е. вообще не требуется, т.к. 7z/7zG и так умеют это делать без посредников.

#160:  Author: Nick PostPosted: Wed Mar 15, 2017 18:43
    —
Flasher
Но, меня именно интересует распаковка с возможностью выбора архивов по расширениям (к примеру с двойными расширениями) и извлечение их содержимого без создания папки по имени архива. Это производится сразу на большом количестве папок и файлов.

#161:  Author: FlasherLocation: Москва PostPosted: Wed Mar 15, 2017 19:03
    —
Nick
И в чем проблема? 7zG.exe x *.html.zip -y

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

Это можно реализовать в одной кнопке и без данного скрипта?

#163:  Author: FlasherLocation: Москва PostPosted: Sat Mar 25, 2017 21:35
    —
Nick
Это и есть конкретный пример. Все .html.zip будут распакованы в рабочем каталоге. Указание пути к 7z.exe и очистка пути запуска, полагаю, не требует пояснений.
Кнопку с cmd сделать - не проблема. Я привёл тематическую ссылку для обсуждения.
Правда я не понимаю, зачем это в структуре делать, если каждый архив в рабочей папке сам должен содержать структуру, требующую сохранности?

#164:  Author: Nick PostPosted: Thu Mar 30, 2017 12:27
    —
Flasher wrote:
и очистка пути запуска, полагаю, не требует пояснений.
А вот это важное замечание. Без этого работать кнопка не будет.
Flasher wrote:
каждый архив в рабочей папке сам должен содержать структуру, требующую сохранности?
Ведь не всегда в архивах хранится нужная структура. Иногда там просто собраны наборы файлов и папок, которые нужно потом (после разархивирования) структурировать.
Flasher wrote:
зачем это в структуре делать
Это для того, чтобы можно было восстановить исходную структуру каталогов, которая была до упаковки.

#165:  Author: Nick PostPosted: Wed Apr 05, 2017 17:53
    —
Спасибо за данный скрипт и отдельное спасибо за длинные пути.

 P.S. Прочее



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page Previous  1, 2, 3 ... 10, 11, 12 ... 34, 35, 36  Next  :| |:
Page 11 of 36

Powered by phpBB © 2001, 2005 phpBB Group