Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

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

 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
kadvlad



Joined: 26 Aug 2007
Posts: 81

Post (Separately) Posted: Fri Feb 27, 2009 01:09    Post subject: Запрос: скрипт для распаковки архива с паролем (?) Reply with quote

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

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

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

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

Возможно ли такое?
Спасибо.
Back to top
View user's profile Send private message
fa1con



Joined: 19 Aug 2006
Posts: 162

Post (Separately) Posted: Fri Feb 27, 2009 18:02    Post subject: Reply with quote

Могу предложить кнопку:
Code:
TOTALCMD#BAR#DATA
winrar
x %P%N %T
WCMICONS.DLL,31



-1

Появится окно с запросом пароля. Ctrl+v, enter. Либо скриптом запускать вынрар с параметрами:
Code:
winrar x -p<текст с БО> %P%N %T

Скрипт писать не возьмусь, хотя это, вроде, не сложно.
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Fri Feb 27, 2009 22:43    Post subject: Reply with quote

2kadvlad
Возможно, тебе эта мысль не приходила в голову: пароль - это по сути своей секретная информация, которую надо в идеале помнить, либо, на худой конец, записывать в самое потайное место. Буфер же обмена таковым не является, вытащить из него информацию проще простого, даже если она была туда помещена хоть месяц назад.
Лучше вводить пароль с клавиатуры при распаковке. Тогда можно обойтись батником:
Code:
winrar x -p%1 %2%3 %4
del %2%3
Параметры кнопки:
Code:
? %P %N %T
При запуске появится запрос на пароль.
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
kadvlad



Joined: 26 Aug 2007
Posts: 81

Post (Separately) Posted: Fri Feb 27, 2009 23:03    Post subject: Reply with quote

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

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

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

К сожалению, не обладаю достаточным уровнем знаний, чтобы самостоятельно решить задачу.
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Sat Feb 28, 2009 00:11    Post subject: Reply with quote

Если четко и однозначно поставишь задачу, попробую написать скрипт. Если текстовый файл имеет простую структуру, можно попробовать обойтись батником.
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
kadvlad



Joined: 26 Aug 2007
Posts: 81

Post (Separately) Posted: Sat Feb 28, 2009 00:48    Post subject: Reply with quote

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

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

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

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

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

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

Спасибо.


Last edited by kadvlad on Sat Feb 28, 2009 20:53; edited 1 time in total
Back to top
View user's profile Send private message
fa1con



Joined: 19 Aug 2006
Posts: 162

Post (Separately) Posted: Sat Feb 28, 2009 11:12    Post subject: Reply with quote

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

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

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

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

kadvlad, подходит? Если да, проси у Вахмурки скрипт.
Back to top
View user's profile Send private message
kadvlad



Joined: 26 Aug 2007
Posts: 81

Post (Separately) Posted: Sat Feb 28, 2009 20:33    Post subject: Reply with quote

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

В 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 с указанными параметрами (или через скрипт — для вставки пароля), ищет в текущей директории архив, распаковует его и потом удаляет. Красота!
Back to top
View user's profile Send private message
fa1con



Joined: 19 Aug 2006
Posts: 162

Post (Separately) Posted: Sat Feb 28, 2009 20:52    Post subject: Reply with quote

kadvlad
а торренты не пробоал юзать?
Back to top
View user's profile Send private message
kadvlad



Joined: 26 Aug 2007
Posts: 81

Post (Separately) Posted: Sat Feb 28, 2009 20:58    Post subject: Reply with quote

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

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

В нашем же случае идёт речь об автоматизации процесса работы с файлами, верно? Благо, Тотал позволяет сделать это оптимально..
Back to top
View user's profile Send private message
kadvlad



Joined: 26 Aug 2007
Posts: 81

Post (Separately) Posted: Sun Mar 01, 2009 13:49    Post subject: Reply with quote

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

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

1. Создал "rar.bat":
Code:
@echo off
rar x -p%1 %2%3 %4

с параметрами запуска ? %P %N %T и добавил батник в пользовательское меню.

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

3. Создал скрипт "paste clipbd.vbs":
Code:
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. Повесил скрипт на кнопку

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


-1


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

Посмотрите — я всё правильно сделал?
Спасибо за содействие.
Back to top
View user's profile Send private message
fa1con



Joined: 19 Aug 2006
Posts: 162

Post (Separately) Posted: Sun Mar 01, 2009 16:02    Post subject: Reply with quote

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

Code:
' =====================================================================
' 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
Back to top
View user's profile Send private message
kadvlad



Joined: 26 Aug 2007
Posts: 81

Post (Separately) Posted: Sun Mar 01, 2009 16:36    Post subject: Reply with quote

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

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

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

пробовал %S и %P%S — ошибки.
в справке написано:
Quote:
%S - имена всех выделенных файлов. Имена, содержащие пробелы, будут взяты в кавычки. Имейте в виду, что длина командной строки не может превышать 32767 символов.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Mon Mar 02, 2009 18:34    Post subject: Reply with quote

kadvlad
Кнопка:
Code:
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.
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
kadvlad



Joined: 26 Aug 2007
Posts: 81

Post (Separately) Posted: Tue Mar 03, 2009 00:09    Post subject: Reply with quote

Batya,

спасибо, работает :)
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group