PDA

Показать полную графическую версию : [решено] Автоподстановка названия файла


Forpost
28-04-2010, 20:37
Здравствуйте.
имеем батник :)

"C:\Program Files\WINRAR\Rar.exe" x -ad a.rar

Подскажите пожалуйста, как его переделать, так чтобы с помощью него можно было открыть любой раровский файл и вместо a.rar автоматически подставился его полный путь и выполнялась команда.

ShaddyR
28-04-2010, 21:53
так:
1) создаем файл unrarit.cmd следующего содержания:
"C:\Program Files\WINRAR\Rar.exe" x -ad "%1"
2) запускаем его, указывая в качестве параметра
любой раровский файл »
т.е.
unrarit.cmd a.rar

Forpost
28-04-2010, 22:31
Не распаковывает.
Какие есть ещё варианты?

ShaddyR
28-04-2010, 22:38
Не распаковывает. »
краткость в родственниках числится? Подробно - как задаешь, чего пишет? При чем здесь "ad" - это параметр для упаковки, а не наоборот. Короче, выполни
"C:\Program Files\WINRAR\Rar.exe" /? >c:\help.txt
и изучи параметры командной строки архиватора.
Что ты хочешь извлечь и куда? Если в текущую папку - убери "ad", все заработает.

Forpost
28-04-2010, 23:04
При выполнении команды из cmd.exe
"C:\Program Files\WINRAR\Rar.exe" x -ad a.rar
Всё отрабатывает. Создаётся директория а и там лежат распакованные файлы.

Задача стоит, в том, чтобы связать расширение рар с батником. И при запуске файла рар, создавалась директория и туда распаковался файл. Т.е. чтобы батник могу динамически получать название файла, а не статически в нём забить только одно название.

P.S.
по поводу команды. Вот из официальной справки.

-ad Добавить к пути назначения имя архива Этот ключ может пригодиться при распаковке группы архивов. По умолчанию RAR извлекает файлы из всех архивов в один и тот же каталог, если же указать ключ -ad, то файлы из каждого архива будут распакованы в отдельные каталоги. Пример: rar x -ad *.rar data\ Здесь при извлечении RAR будет создавать в каталоге 'data' подкаталоги для каждого распаковываемого архива.

P.P.S.
Может у нас с Вами версии разные?
У меня 3.80 Ru

ShaddyR
29-04-2010, 00:36
Forpost, понял, проверил. Все работает. Что именно у тебя не получилось?
Подкорректировал первое свое сообщение (http://forum.oszone.net/post-1402877.html#post1402877), попробуй еще раз.

Forpost
29-04-2010, 16:32
Не совсем так. Батник будет запускаться не из командной строки, а расширение будет с ассоциировано с этим батник.
Равносильно, что правой кнопкой стать на рар архиве => "Открыть с помощью" => "Обзор" => Выбираем бат файл. Вуаля бат-файл ассоциирован с расширением рар. Вот при таком условии описанный выше батник - не работает :)

ShaddyR
29-04-2010, 22:57
Forpost, только что проверил - работает.

Iska
29-04-2010, 23:18
Forpost, если запуск будет не из командной строки, зачем использовать консольный вариант?! Используйте GUI.
REGEDIT4

[HKEY_CLASSES_ROOT\WinRAR\shell\ExtractToFolder]
@="Извлечь в одноимённую папку"

[HKEY_CLASSES_ROOT\WinRAR\shell\ExtractToFolder\command]
@="\"C:\\Program Files\\WinRAR\\WinRAR.exe\" x -ad \"%1\""

Можно использовать и переменную вместо непосредственного указания «C:\Program Files»:
REGEDIT4

[HKEY_CLASSES_ROOT\WinRAR\shell\ExtractToFolder]
@="Извлечь в одноимённую папку"

[HKEY_CLASSES_ROOT\WinRAR\shell\ExtractToFolder\command]
@=hex(2):22,25,50,72,6f,67,72,61,6d,46,69,6c,65,73,25,5c,5c,57,69,6e,52,41,52,\
5c,5c,57,69,6e,52,41,52,2e,65,78,65,22,20,78,20,2d,61,64,20,22,25,31,22,00

P.S. Если Вы настойчиво хотите, чтобы сие действие было умолчальным (вместо глагола Open), измените глагол по умолчанию (хотя я бы крайне не рекомендовал этого делать) с помощью:
REGEDIT4

[HKEY_CLASSES_ROOT\WinRAR\shell]
@="ExtractToFolder"

Так, по крайней мере, можно будет легко вернуть прежнее поведение по умолчанию.

P.S. Я, правда не понял, чем не устраивает имеющаяся команда самого WinRar'а «Извлечь в «имя архива» (Извлечение файлов в указанную папку)/Извлечь каждый архив в отдельную папку»?

Forpost
01-05-2010, 12:27
Всё работает. только для расширения зип надо тоже самое проделать.

Iska
01-05-2010, 18:21
Forpost, смотрите сами. Если у Вас была задействована интеграция WinRar с zip-архивами, то в «HKEY_CLASSES_ROOT\.zip» значение по умолчанию должно быть таким:
REGEDIT4

[HKEY_CLASSES_ROOT\.zip]
@="WinRAR.ZIP"

и, соответственно, достаточно будет сделать reg-файлы, аналогичные reg-файлам из поста #9 (http://forum.oszone.net/post-1403723-9.html), только поменяв в наименованиях разделов «WinRAR» на «WinRAR.ZIP» (например, «[HKEY_CLASSES_ROOT\WinRAR\shell\ExtractToFolder]» — на «[HKEY_CLASSES_ROOT\WinRAR.ZIP\shell\ExtractToFolder» и т.п.). Т.е., файл реестра (код №2 из поста #9 (http://forum.oszone.net/post-1403723-9.html)) примет следующий вид:
REGEDIT4

[HKEY_CLASSES_ROOT\WinRAR.ZIP\shell\ExtractToFolder]
@="Извлечь в одноимённую папку"

[HKEY_CLASSES_ROOT\WinRAR.ZIP\shell\ExtractToFolder\command]
@=hex(2):22,25,50,72,6f,67,72,61,6d,46,69,6c,65,73,25,5c,5c,57,69,6e,52,41,52,\
5c,5c,57,69,6e,52,41,52,2e,65,78,65,22,20,78,20,2d,61,64,20,22,25,31,22,00
Если же у Вас в «HKEY_CLASSES_ROOT\.zip\@» нечто иное (что вряд ли, но — на всякий случай!) — соответственно, вместо «WinRAR.ZIP», ищете в «HKEY_CLASSES_ROOT» и добавляете именно в тот раздел, который указан в значении «HKEY_CLASSES_ROOT\.zip\@».




© OSzone.net 2001-2012