Запрос: скрипт для распаковки архива с паролем (?)

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

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

Ответить
kadvlad
Сообщения: 81
Зарегистрирован: Вс авг 26, 2007 14:45

Запрос: скрипт для распаковки архива с паролем (?)

Сообщение kadvlad »

Друзья,
помогите, пожалуйста, с помощью скрипта решить такую задачу:

- Автоматизация распаковки rar-архива с паролем.
- Распаковывать в каталог в соседнем окне (напротив).
- Пароль подставлять из буфера обмена.

Что-то типа:
rar e -pпароль_в_буфере D:\путь_напротив

- По окончании распаковки архив удалять.

Возможно ли такое?
Спасибо.
Аватара пользователя
fa1con
Сообщения: 162
Зарегистрирован: Сб авг 19, 2006 00:33

Сообщение fa1con »

Могу предложить кнопку:

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

TOTALCMD#BAR#DATA
winrar
x %P%N %T
WCMICONS.DLL,31



-1
Появится окно с запросом пароля. Ctrl+v, enter. Либо скриптом запускать вынрар с параметрами:

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

winrar x -p<текст с БО> %P%N %T
Скрипт писать не возьмусь, хотя это, вроде, не сложно.
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

2kadvlad
Возможно, тебе эта мысль не приходила в голову: пароль - это по сути своей секретная информация, которую надо в идеале помнить, либо, на худой конец, записывать в самое потайное место. Буфер же обмена таковым не является, вытащить из него информацию проще простого, даже если она была туда помещена хоть месяц назад.
Лучше вводить пароль с клавиатуры при распаковке. Тогда можно обойтись батником:

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

winrar x -p%1 %2%3 %4
del %2%3
Параметры кнопки:

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

? %P %N %T
При запуске появится запрос на пароль.
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
kadvlad
Сообщения: 81
Зарегистрирован: Вс авг 26, 2007 14:45

Сообщение kadvlad »

fa1con, Вахмурка,
спасибо

Речь идёт об элементарной автоматизации рутинных процессов:
файлы, скачиваемые с файлообменников типа rapidshare, зачастую запаролены. Распаковка архивов происходит на следующий день или позже. Вспоминать, где записан пароль, бывает затруднительно.
Так что никакой секретности на домашнем компьютере нет и быть не может.
Если такая возможность существует — почему бы не воспользоваться ею?

В идеале было бы вообще исключить человеческий фактор —
брать пароль из txt-файла, одноимённого архиву — многие менеджеры закачек умеют создавать файл-описание (архив.rar.txt) к любой закачке; я так записываю пароли к скачиваемому контенту.

К сожалению, не обладаю достаточным уровнем знаний, чтобы самостоятельно решить задачу.
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

Если четко и однозначно поставишь задачу, попробую написать скрипт. Если текстовый файл имеет простую структуру, можно попробовать обойтись батником.
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
kadvlad
Сообщения: 81
Зарегистрирован: Вс авг 26, 2007 14:45

Сообщение kadvlad »

ОК, попробую.
обойдёмся без текстового файла: это всё же сложно (там ещё указывается URL и дата закачки).

Дано:
Запароленный архив "archive.rar".

Задача:
Распаковать архив в каталог напротив или предуказанный каталог (например, D:\New)

Дополнительно:
Архиватор rar.exe лежит в %systemroot%
Перед распаковкой копируем пароль из txt-файла в буфер обмена.

Вариант fa1con нормально работает через конт.меню "copy-paste" в консоли.

Если ты скажешь, что всё-таки будет проще копипейстом обходиться, чем скрипт писать — я не буду настаивать, соглашусь :)

Спасибо.
Последний раз редактировалось kadvlad Сб фев 28, 2009 19:53, всего редактировалось 1 раз.
Аватара пользователя
fa1con
Сообщения: 162
Зарегистрирован: Сб авг 19, 2006 00:33

Сообщение fa1con »

kadvlad, это не четко и однозначно поставленная задача. Какой ещё тхт-файл? Бррр, ничего не понял.

Ты часто качаешь запаленные рар-архивы, пароли к которым разбросаны по форумам. Ты хочешь сохранить соответствие архив-пароль, а после завершения закачки распаковать все архивы использовав это соответствие. При чем хочешь что б все было максимально автоматизировано. Правильно?

Если да, предлагаю такой вариант. Добавляешь закачку с менеджер, переключаешься на тотал, тыкаешь на только что созданный менеджером файл, нажимаешь ctrl+z, вставляешь туда пароль. Так делаешь для каждого файла. Теперь нужно распаковать, используя скрипт.

Скрипт должен распаковывать выделенные рар-архивы, используя в качестве пароля коментарий из файла descript.ion.

kadvlad, подходит? Если да, проси у Вахмурки скрипт.
kadvlad
Сообщения: 81
Зарегистрирован: Вс авг 26, 2007 14:45

Сообщение kadvlad »

Насчет тхт-файла я некорректно выразился: считаем, что перед началом распаковки пароль мы уже самостоятельно скопировали в буфер.
Выковыривать скриптом пароль из файла-описания всё ж муторно (?).

В Download Master создаётся файл "archive.rar.txt":

Name: archive.rar
URL: http://address.com/..archive.rar
Size: 767682
Create time: 28.02.2009 17:15:06
Complete time: 28.02.2009 17:16:32
Referer:
Description: пароль

В USDownloader создаётся файл "archive.txt":

Имя: archive
URL: http://address.com/..
Размер: 749,69 KB (767682)
Дата: 28.02.2009 14:51
Описание: пароль

Возиться со свойствами архива (CTRL-Z) тоже заморочно. Представь, что они стоят в длинной очереди в качалке, и на диске их ещё попросту нет, т.е. пока некуда вводить "свойства".

----------------
Вообще, в идеале было бы прикрутить к качалке нормальный планировщик:
после скачивания архива запускается rar.exe с указанными параметрами (или через скрипт — для вставки пароля), ищет в текущей директории архив, распаковует его и потом удаляет. Красота!
Аватара пользователя
fa1con
Сообщения: 162
Зарегистрирован: Сб авг 19, 2006 00:33

Сообщение fa1con »

kadvlad
а торренты не пробоал юзать?
kadvlad
Сообщения: 81
Зарегистрирован: Вс авг 26, 2007 14:45

Сообщение kadvlad »

fa1con
спасибо, юзаю активно ;)

Но бывает всё же — в закрытых блогах выкладывают под паролем интересные вещи, с которыми в торрентах сложно.

В нашем же случае идёт речь об автоматизации процесса работы с файлами, верно? Благо, Тотал позволяет сделать это оптимально..
kadvlad
Сообщения: 81
Зарегистрирован: Вс авг 26, 2007 14:45

Сообщение kadvlad »

Друзья,
принимайте работу:

за основу взял найденный в TCKB vbs-скрипт

1. Создал "rar.bat":

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

@echo off
rar x -p%1 %2%3 %4
с параметрами запуска ? %P %N %T и добавил батник в пользовательское меню.

2. Повесил этот пункт меню на хоткей F11.

3. Создал скрипт "paste clipbd.vbs":

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

Dim TCS, Str
Set TCS = CreateObject("TCScript.Helper")
Str = TCS.GetTextFromClip
TCS.Pause=100
TCS.LockTC True
TCS.SendKeystroke ("{F11}")
TCS.SendKeystroke ("{HOME}")
TCS.SendKeystroke (Str)
TCS.Pause=100
TCS.SendKeystroke ("{Enter}")
TCS.LockTC False
Set TCS = Nothing
Wscript.Quit
4. Повесил скрипт на кнопку

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

TOTALCMD#BAR#DATA
"D:\paste clipbd.vbs"
%L
C:\WINDOWS\System32\WScript.exe
paste clipbd


-1
Теперь при нажатии на эту кнопку запароленный архив под курсором распаковуется в директорию напротив, а пароль вставляется из буфера обмена.

Посмотрите — я всё правильно сделал?
Спасибо за содействие.
Аватара пользователя
fa1con
Сообщения: 162
Зарегистрирован: Сб авг 19, 2006 00:33

Сообщение fa1con »

kadvlad
Лучше как-то так:

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

' =====================================================================
' File:         unrarp.vbs
' Description:  Распаковка запароленного rar-архива, использую в
'               качестве пароля текст из clipboard
'               winrar x -p<текст из БО> %P%N %T
' Installation: Создайте кнопку на панели TC
'               Команда: "диск:\путь\к\файлу\unrarp.vbs" 
'               Параметры: %P%N %T
' =====================================================================

Dim RarPath, Params
RarPath = "c:\Program Files\WinRAR\Rar.exe" 'Путь к (win)rar-у

Set objArgs = WScript.Arguments
Set WS = CreateObject("WScript.Shell")

if objArgs.Count = 2 then

  Set objIE = CreateObject("InternetExplorer.Application")
  objIE.Navigate("about:blank")
  strURL = objIE.document.parentwindow.clipboardData.GetData("text")
  objIE.Quit

  Params = "x -p" & strURL & " " & chr(34) & objArgs(0) & chr(34) & " " & chr(34) & objArgs(1) &chr(34)
  WS.run chr(34) & RarPath & chr(34) & " " & Params
End if
kadvlad
Сообщения: 81
Зарегистрирован: Вс авг 26, 2007 14:45

Сообщение kadvlad »

fa1con
спасибо, но мне проще через более простой скрипт :)

Set objIE = CreateObject("InternetExplorer.Application") ?
с IE и его производными я не дружу..

подскажи, пожалуйста, с каким параметром правильно запускать мой скрипт (см. выше), чтобы сразу обрабатывались все выделенные файлы-архивы?

пробовал %S и %P%S — ошибки.
в справке написано:
%S - имена всех выделенных файлов. Имена, содержащие пробелы, будут взяты в кавычки. Имейте в виду, что длина командной строки не может превышать 32767 символов.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

kadvlad
Кнопка:

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

TOTALCMD#BAR#DATA
%Commander_Path%\Utils\WHS\MultiRun.vbs
10 "%%ProgramFiles%%\WinRar\WinRar.Exe" X -ibck -p### <<%L>> "%T"
%Commander_Path%\WCMICONS.DLL,31
Распаковка запароленных архивов

1
-1
Используется MultiRun.vbs.
Нет, я не сплю. Я просто медленно моргаю.
kadvlad
Сообщения: 81
Зарегистрирован: Вс авг 26, 2007 14:45

Сообщение kadvlad »

Batya,

спасибо, работает :)
Ответить