laburj писал(а):у меня если путь русскими буквами или файл с русским именем, то происходит распаковка в папку с именем архива и архив не удаляется.
laburj писал(а):Batya, ещё заметил, что скрипт не работает и с англоязычными путями, содержащими пробелы
Сорри, я как-то пропустил твои посты с проблемами. Хорошо, что тему подняли
Лучше поздно, чем никогда. Со скриптом всё в порядке, а батник должен быть такой:
Batya, тебе в очередной раз уважуха)
наконец-то теперь всё работает, кроме..
..случая распаковки многотомных архивов. Если выделить несколько частей архива (part1, part2 и т.д.), а после нажать на кнопку распаковки (даже с ключом режима перезаписи : пропускать существующие файлы), то возникает несколько (по количеству частей архива) диагностических сообщений от winRar, мол такой то архив.part1.rar: Нет файлов для извлечения
Tol!k писал(а):вар 2
если в скрипт добавить такие строки TCS.Pause=100 TCS.SendCommand "cm_SaveSelection", False TCS.SendCommand "cm_UnpackFiles", False
и TCS.SendKeystroke "{ENTER}" 'Время на распаковку всех выделенных архивов
TCS.Pause=7000
TCS.SendCommand "cm_RestoreSelection", False
TCS.Pause=100
TCS.SendKeystroke "{DELETE}"
TCS.SendKeystroke "{ENTER}" Set TCS = Nothing
после распаковки архивы удаляются в корзину.
--------------------------------------------------------------------------
или 'Время на распаковку всех выделенных архивов
TCS.Pause=7000
TCS.SendCommand "cm_RestoreSelection", False
TCS.Pause=100
TCS.SendKeystroke "+{DELETE}"
TCS.SendKeystroke "{ENTER}"
для удаления мимо корзины (если позволяют настройки TC)
================================================
это вске очень прекрасно но куда прописывать эти команды обьясните вкраце ток понятно спасибоо!!заранее!
racer
Да в скрипт UnpackHere.vbs от Volniy. Код скрипта приведён постом выше.
Зелёный текст это то, что уже есть в скрипте; оранжевый — то, что нужно добавить.
Только не советую использовать эту неудачную доработку, т.к. нужно угадать паузу для распаковки всех архивов (TCS.Pause=7000 — это 7 сек.) Если времени окажется недостаточно, скрипт будет работать неправильно.
ну яже спрашивал про скрипт/// непойму как его открыть куда че фак
а с биндами и так все ясно это кстати тупо придумано а вот как сделать чтоб архив удалялся или хотябы куданиб отправлялся8^) сам посебе???
сенсорные экраны юзаеш??
[mod="CaptainFlint"]Предупреждение за нарушение п. 14 правил. Настоятельно рекомендую сменить стиль выражения своих мыслей так, чтобы было удобно и понятно не только пишущему, но и читающему.[/mod]
TOTALCMD#BAR#DATA
%Commander_Path%\Utils\WHS\MultiRun.vbs 10 "%ProgramFiles%\WinRar\WinRar.exe"
X -ibck -ad <<%L>> "%P"
%ProgramFiles%\WinRar\WinRar.exe
Фоновое извлечение из архивов в папку с именем архива
-1
[/quote]
Скажите пожалуйста, возможно ли изменить данную кнопочку, чтобы архив распаковывался рядом в той же папке. Все это работает корретно до тех пор пока я не выделяю файлы-архивы в режиме просмотра директории без подкаталогов (по умолч. хоткей ctr+b)
Возможно ли поправить батник/скрипт таким образом, чтобы архив удалялся только при удачной распаковке? Бывают ситуации, что среди незапароленных архивов попадаются с паролем, в такой ситуации вылетает окошко с запросом пароля, приходится выискивать такой архив и временно копировать его в другое место, чтобы в дальнейшем уточнять пароль к нему и распаковывать отдельно, или если вдруг ошибешься с вводом пароля, то после распаковки получишь пустую папку, WinRAR сообщит об ошибке несовпадения пароля, но батник по завершении распаковки всех архивов их в любом случае удалит.
Вобщем очень хочется видеть следующий результат работы скрипта/батника/кнопки:
1. выделяешь нужные архивы
2. жмешь кнопку
3. на месте удачно распакованных архивов - папки с их содержимым (сами архивы удалены)
4. архивы, распакованные с ошибкой (несовпадение пароля и т.п.) - остаются на своём месте нетронутыми, пустые папки после их неудачной распаковки не созданы(удалены).
Такми образом сразу будет видно какие архивы распаковались "как надо", а какие требуют "особого внимания".
Еще лучше, если при распаковке архивы, требующие ввода пароля будут игнорироваться вовсе. Дело в том, что массив обрабатываемых архивов достаточно велик, а зашифрованные попадаются достаточно редко, в небольших количествах и пароли к ним, как правило, разные. Что касается таких запароленных архивов, автоматизировать получается нечего, но терять их в процессе пакетной распаковки недопустимо.
p.s. Какие из обрабатываемых архивов под паролем заранее неизвестно.
p.p.s. очень не хочется, чтобы при "натыкании" на такой архив весь процесс "стопорился", в идеале если он просто будет автоматически пропущен.
(возникла идея) Возможно у архивов есть какая-то сигнатура по которой можно определить установлен к ним пароль или нет, по этой сигнатуре отфильтровать полученый список и дальнейшую обработку производить только с теми, что для распаковки пароля не трубуют.
Если довести функционал до такого уровня реально - буду крайне признателен.
Posted after 2 minutes:
Возможно вопрос больше в тему "Автоматизация", но уж коли сам батник, скрипт и кнопка находятся здесь, написал сюда же.
Avada
Поясните пожалуйста, мне со своим сообщением надо что-то сделать? Или создать с ним тему в "Автоматизации"?
Я вроде как нашел уже интересующую меня тему, воспользовался вариантом решения поставленной задачи, предложенным в этой теме, столкнулся с некоторыми нюансами и попросил помощи в их решении здесь же. Если всей этой теме место в другом разделе, то решение о её переносе, уверен, модератором примется без моего участия. Если требуется создать тему в "Автоматизации", я перенесу своё сообщение туда, а вас попрошу добавить ссылку на страницу в этой теме с уже имеющимися наработками по этому вопросу.
Спасибо за внимание!
p.s. Случай считаю не таким уж частным, думаю не только у меня может сложиться ситуация, когда воспользовавшись предложенным вариантом, пользователь получит пустую папку и удаленный первоисточник информации (я про случай архива под паролем).
Cobblestone-TLT
Решение о переносе уже принято, и сам перенос, как нетрудно видеть, выполнен — мы сейчас в "Автоматизации". (Зелёным цветом в моих постах обозначаются модераторские действия.) Дополнительно с темой и сообщением ничего сейчас делать не надо.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Cobblestone-TLT
Если заголовки зашифрованы, то практически нереально...
Разве что создавать комментарии для архивов и там прописывать статус.
Удалять пустые папки можно, но от того утилита висеть в трее не перестанет.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Flasher
А если попытаться реализовать такой алгоритм: скрипт пытается распаковать архив, пытается впихнуть какой-либо пароль, пусть так же из буфера или заранее заданный где-либо в параметрах, если буфер пустой (чтобы процесс не останавливался на окне с запросом этого самого пароля), затем проверяет резмер получившейся папки, если результат "нулевой" - удаляет папку, оставляет архив, если не нулевой (папка содержит файлы/вложенные папки с файлами ненулевой длины) - скрипт оставляет эту папку и удаляет исходный архив. Сообщения WinRAR об ошибках при распаковке из-за несовпадения пароля желательно при этом как-то игнорировать(пропускать/скрывать).
Posted after 4 minutes:
Опередил меня немного) Пусть даже остается висеть в трее и придется вручную закрывать окна с ошибками WinRAR'а (благо таких окон будет не много и не часто) лишь бы они не мешали обрабатывать все остальные и не удалялись сами архивы, которые явились причиной появления этих окон с ошибками.
Cobblestone-TLT
WinRAR.exe и 7z.exe будут создавать папки в любом случае (7z даже файлы-пустышки будет создавать), т.е. придётся в любом случае удалять нулевые папки. А с висом и окном решаемо ключами -p- -inul/-y.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.