Рекурсивная распаковка

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

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

Iori
Сообщения: 552
Зарегистрирован: Ср апр 25, 2012 20:33

Сообщение Iori »

Flasher

Теперь понятно.
Огромнейшее спасибо :)
Kiril__777
Сообщения: 15
Зарегистрирован: Пт сен 09, 2016 15:40

Сообщение Kiril__777 »

Flasher
всеравно не пойму как работает скрипт, проблему описал здесь
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Kiril__777
Это, увы, не претендует на достаточное описание проблемы. Как правильно её описывать, уже упоминалось в памятке, обязательной для прочтения.
Последний раз редактировалось Flasher Сб сен 10, 2016 15:38, всего редактировалось 1 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Kiril__777
Как модератор ещё раз повторяю сказанное здесь: на этом форуме категорически не приветствуются сообщения с демонстративным неиспользованием заглавных букв и знаков препинания. Здесь не чат. Претендуете на помощь — соблюдайте правила. А ссылки пора уже оформлять нормально самому (исправлено).
Даже самая богатая фантазия
Не представит себе наши безобразия.
Nick
Сообщения: 107
Зарегистрирован: Пт дек 26, 2014 17:11

Сообщение Nick »

Здравствуйте.
Что надо изменить в этом скрипте, чтобы:
- Была возможность указать двойные расширения файлов (например, doc.zip, xls.zip и т.п.)
- Скрипт работал при длинных путях. Он перестает работать (останавливается), если общий путь длиннее 254 символов.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Nick
Указать только для фильтрации? Т.е. без двойной распаковки?
С длинными я могу поправить, но для таких останется проблема с переходом к одиночникам некоторых zip.
И вряд ли скрипт работал, тем более что останавливается. И не 254, а 259.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Nick
Сообщения: 107
Зарегистрирован: Пт дек 26, 2014 17:11

Сообщение Nick »

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

Сообщение Flasher »

Nick
Что-то как-то подозрительно. Проверим. Что покажет?:

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

Folder = "C:\Temp\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path"
File = Folder & "\FileName.7z"
CreateObject("Shell.Application").NameSpace("C:\").NewFolder Mid(Folder, 4)
With CreateObject("Scripting.FileSystemObject")
  .CreateTextFile File : If .FileExists(File) Then _
  MsgBox "Создан файл " & File & vbCr & "с длиной пути " & Len(File) & " символов."
End With
Также прошу указать пути до скрипта и проблемного архива. Сам архив тоже не помешает. Остальное (не менее важно) по памятке.
К тому же нужно указать на тип выбираемых объектов.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Nick
Сообщения: 107
Зарегистрирован: Пт дек 26, 2014 17:11

Сообщение Nick »

Flasher
---------------------------
Создан файл C:\Temp\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\Long Path\FileName.7z
с длиной пути 259 символов.
---------------------------

Путь до срипта: ""C:\Program Files\Total Commander\Scripts\Test.vbs""
Сам архив "FileName.7z" создается и имеет длину - 0 байт. ОС Win7x64.
Версия "wscript.exe" из плагина "FileInfo" - FileVersion: 5.8.7600.16385, ProductVersion : 5.8.7600.16385, File/Product version: 5.8.7601.18283 / 5.8.7601.18283. Не знаю, почему здесь пишутся разные версии файла. А в свойствах самого файла - 5.8.7601.18283.

Если добавить еще папки к пути в файле "Test.vbs", то выводится окно с ошибкой:
---------------------------
Сценарий: C:\Program Files\Total Commander\Scripts\Test - копия.vbs
Строка: 3
Символ: 1
Ошибка: Имя файла или его расширение имеет слишком большую длину.
Код: 800700CE
Источник: (null)
---------------------------
Пример пути: "c:\Users\Administrator\Documents\Мои документы\Общие файлы\Из Интернета\Для аудио\Дополнительные аудио-видео переходники и разъемы\Переходники DEXP\Переходник DEXP 3.5 mm jack 4pin - 3.5 mm jack x2\Купить Переходник DEXP 3.5 mm jack 4pin - 3.5 mm jack x2 в интернет магазине. Характеристики, цена _\Купить Переходник DEXP 3.5 mm jack 4pin - 3.5 mm jack x2 в интернет магазине. Характеристики, цена _.rar"

Тип выбираемых объектов - папки и файлы с длинными путями.
Последний раз редактировалось Nick Вс мар 05, 2017 20:14, всего редактировалось 2 раза.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Nick
Всё-таки надо было указать, что текст, идущий после тестового скрипта, касался не его, а обсуждаемого. Думал, это очевидно, т.к. в ином случае рано было бы говорить о проблемном архиве. Тем более, что здесь вообще не задействована 7z. Этот скрипт только лишь доказал, что пути с архивами в 255-259 символов не могли создать проблемы.
Путь к скрипту распаковки нужен абсолютный (с раскрытием переменной среды). Прошу исправить пост и указать отсутствующие нужности.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Nick
Сообщения: 107
Зарегистрирован: Пт дек 26, 2014 17:11

Сообщение Nick »

Flasher писал(а):Всё-таки надо было указать, что текст, идущий после тестового скрипта, касался не его, а обсуждаемого.
Если имеется в виду фраза "Тип выбираемых объектов - папки и файлы с длинными путями." то да, это про этот скрипт, который и обсуждается в этой теме.
Flasher писал(а):Путь к скрипту распаковки нужен абсолютный (с раскрытием переменной среды).
Полный путь: "C:\Program Files\Total Commander\Scripts\Test.vbs"
ОС: Win7x64 SP1, TC (x64) 8.52a.
P.S. Понял, где ошибка была. Верно, при 259 символах в пути скрипт еще распаковывает, а вот начиная с 260 - уже нет. (Ошибся, не учел в пути имя файла с расширением).
Последний раз редактировалось Nick Вс мар 05, 2017 19:14, всего редактировалось 2 раза.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Nick писал(а):Если имеется в виду фраза
При чём тут фраза? Написано "текст, идущий после тестового скрипта". Какой текст идёт в моём посте после скрипта? Не часть, а весь текст.
Жду исправлений.
Nick писал(а):Понял, где ошибка была.
Ну, наконец-то.

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

Nick
Скрипт модифицирован.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Nick
Сообщения: 107
Зарегистрирован: Пт дек 26, 2014 17:11

Сообщение Nick »

Flasher
Есть некоторые проблемы с двойными расширениями. При трёхсимвольных расширениях, вроде, нормально работает, но, если двойное расширение более 3-х символов или менее - то нет. Например, docx.rar, xlsx.rar, manifest.zip, z.zip и т.п.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Nick
Проблем с зависимостью от длины ни в коде ни в результатах не обнаружено.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Nick
Сообщения: 107
Зарегистрирован: Пт дек 26, 2014 17:11

Сообщение Nick »

Flasher
Тем не менее распаковка не происходит. Например, такие параметры: %WL docx.rar|xlsx.rar|html.rar 1 s 1.
Также при распаковке одиночных элементов не перемещается в папку до полного пути, видимо, срабатывает ограничение в 260 символов в пути.
Ответить