Кнопки для 7-Zip

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

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

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

Сообщение Iori »

Flasher

Не подумал бы что такую простую вещь он не исправил за столько лет существования командера.

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

Сообщение Flasher »

Iori
Там таких вещей воз и маленькая тележка, всего сходу и не перечислишь..
vbyen
Сообщения: 16
Зарегистрирован: Вт сен 11, 2012 13:17

Сообщение vbyen »

Tol!k, за долгое время использования внезапно обнаружил, что твой батник не распаковывает архивы внутри каталогов с кириллическими именами или это только у меня одного так?
Можно это дело починить без ущерба прежнему функционалу? Ибо батник крайне нужен, вся распаковка на нем висит.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

vbyen
Если нужно распаковывать в папки рядом с архивами, то можно ещё мой скрипт использовать.
vbyen
Сообщения: 16
Зарегистрирован: Вт сен 11, 2012 13:17

Сообщение vbyen »

Flasher, спасибо, великолепный скрипт!
Единственное, можно подсказку - что в коде нужно изменить, чтобы сделать второй вариант скрипта (или доработку этого) для пакетной простой распаковки (не в одноименные каталоги)?
Это где-то здесь?

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

WSH.Run """" & Proga & """ x """ & File & """ -o""" & NF & """ -y", 0, True
Iori
Сообщения: 552
Зарегистрирован: Ср апр 25, 2012 20:33

Сообщение Iori »

vbyen

У меня вроде Толикин батник нормально распаковывает архивы внутри каталогов с кириллическими именами.

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

Сообщение Flasher »

vbyen
Поменять

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

      NF = FSO.CreateFolder(FSO.GetParentFolderName(File) & "\"  & FSO.GetBaseName(File) & "\" )
      WSH.Run """" & Proga & """ x """ & File & """ -o""" & NF & """ -y", 0, True 
на

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

      WSH.Run """" & Proga & """ x """ & File & """ -o""" & FSO.GetParentFolderName(File) & "\"" -y", 0, True
vbyen
Сообщения: 16
Зарегистрирован: Вт сен 11, 2012 13:17

Сообщение vbyen »

Flasher, еще раз спасибо! Фикс кода сработал на ура.
И к слову, этот вариант скрипта у меня вел себя своеобразно - мгновенно после запуска радостно сообщал "Распаковка завершена!" соответственно без всякой распаковки)

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

Сообщение Flasher »

vbyen, пожалуйста.
vbyen писал(а):без всякой распаковки
Потому что он обрабатывает только архивы в структуре выбранных каталогов, а не выбранные в панели архивы.
vbyen
Сообщения: 16
Зарегистрирован: Вт сен 11, 2012 13:17

Сообщение vbyen »

Flasher, еще такой нюанс — возможно ли и как сделать визуализацию процесса распаковки для твоих скриптов?
Подойдет любая свернутая консоль (или в идеале — процесс-окно самого 7zG)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

vbyen
А зачем? Там же окно в конце упаковки появляется.
vbyen
Сообщения: 16
Зарегистрирован: Вт сен 11, 2012 13:17

Сообщение vbyen »

Flasher, привычнее наблюдать в трее любую иконку процесса распаковки.
А окошко подтверждения ... признаться, всякий раз слегка нервирует среди полной тишины дожидаться когда оно наконец всплывет :wink:
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

vbyen
Фишка в том, чтобы во время распаковки можно было заниматься своими делами, не отвлекаясь на работу утилиты. Особенно актуально при большом кол-ве архивов и их размере. Уведомления для этого достаточно. А в данном случае нельзя подвязать все процессы к одному прогрессу. Много сменяющихся окон/иконок с разными показаниями будут нервировать куда больше.
И с вопросом стоило бы обращаться по месту расположения скрипта.
vbyen
Сообщения: 16
Зарегистрирован: Вт сен 11, 2012 13:17

Сообщение vbyen »

Ок, кривоватый самофикс)
Любой легкий экзешник запускается свернутым в начале распаковки

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

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "%COMMANDER_PATH%\Soft\Utils\archivers\file.exe",7
И в конце распаковки прибивается

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

WshShell.Run "taskkill /IM file.exe", 0
В качестве индикации вроде безглючно работает

p.s. на скрипт повесил пустой консольный exe, а потом задним числом подумал, что в него можно было и простенькую 8-бит муз. тему вставить.
На любителя, конечно)
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Чтобы консольные окна располагались в свёрнутом виде, достаточно в приведённой мной строке 0 заменить на 2. taskkill тут никакой не нужен.
Ответить