Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Автоподстановка названия файла (http://forum.oszone.net/showthread.php?t=174355)

Forpost 28-04-2010 20:37 1402821

Автоподстановка названия файла
 
Здравствуйте.
имеем батник :)

PHP код:

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

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

ShaddyR 28-04-2010 21:53 1402877

так:
1) создаем файл unrarit.cmd следующего содержания:
Код:

"C:\Program Files\WINRAR\Rar.exe" x -ad "%1"
2) запускаем его, указывая в качестве параметра
Цитата:

Цитата Forpost
любой раровский файл »

т.е.
Код:

unrarit.cmd a.rar

Forpost 28-04-2010 22:31 1402904

Не распаковывает.
Какие есть ещё варианты?

ShaddyR 28-04-2010 22:38 1402909

Цитата:

Цитата Forpost
Не распаковывает. »

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

Forpost 28-04-2010 23:04 1402929

При выполнении команды из 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 1402975

Forpost, понял, проверил. Все работает. Что именно у тебя не получилось?
Подкорректировал первое свое сообщение, попробуй еще раз.

Forpost 29-04-2010 16:32 1403442

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

ShaddyR 29-04-2010 22:57 1403711

Вложений: 1
Forpost, только что проверил - работает.

Iska 29-04-2010 23:18 1403723

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 1404544

Всё работает. только для расширения зип надо тоже самое проделать.

Iska 01-05-2010 18:21 1404727

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

REGEDIT4

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


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

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\@».


Время: 02:14.

Время: 02:14.
© OSzone.net 2001-