И Windows 7 с 7 zip: Сделайте “Извлечение к <папке>” значением по умолчанию при двойном щелчке

Я пытаюсь найти способ сделать действие, к которому можно выполнить из контекстного меню, "Извлечение <folder_same_as_file_name>"действие по умолчанию при двойном щелчке по файлу вместо того, чтобы просто запуститься с 7 zip. Существует ли простой способ сделать это?

В альтернативе я заключаю, что мог попробовать передающие параметры в следующее:

7z x <filename> -o<filename>

Но я не уверен, как настроить это (как передать параметр имени файла, и я могу сделать это непосредственно, или я должен буду записать пакетный файл вместо этого и передать имя файла ему? Последний я нахожу раздраженно неизящными, но безотносительно работ.

15
задан 18.03.2011, 23:20

3 ответа

К сожалению, метод пакетной программы afrazier не будет работать; Windows не обрабатывает открытие нескольких файлов как этот. Когда Вы пытаетесь открыть несколько файлов с программой, Windows не открывает единственный экземпляр программы и передает файлы как несколько аргументов тому одному экземпляру. Вместо этого Windows открывает много экземпляров программы (как много экземпляров, поскольку существуют файлы), передавая один файл каждому экземпляру. Было бы хорошо, если Вы могли бы просто использовать % * и передать набор файлов к единственному .bat и иметь это, .bat выполняют цикл, обрабатывающий каждый файл по одному, но к сожалению можно только использовать %1 при установке этих видов действий в реестре.

Кто-то с некоторым временем на их руках мог записать программу, которая использует взаимоисключающий объект проверить, существует ли другой экземпляр, уже работающий, и если существует, для передачи это - файл к тому экземпляру, и затем закройтесь, где исходный экземпляр поместит тот файл в очередь и доберется до него, после того как это сделало обработку ее собственного файла. пакет мог добиться цели использование tasklist и findТакже, но это не так хорошо из решения как взаимное исключение.

Так или иначе попробуйте это, чтобы Ваше значение реестра команды извлечения получило правильное имя папки:

"\path\to\7z.exe" x "%1" -o* -aou

Это создаст новую папку в том же каталоге как исходный архив с тем же именем как исходный архив (без расширения файла).

Кроме того, я добавил -aou переключитесь для автоматического предотвращения конфликтов имени файла (7z, добавит число в конец файла, вместо этого предлагающего Вам, хотите ли Вы перезаписать или безотносительно).

4
ответ дан 07.12.2019, 11:05

Параметры передачи как это:

7z x "%1" -o"%1.d"

Я вспоминаю жалобы на слушание на Windows 7, не позволяющий непосредственно отредактировать действия файла. Я не знаю, верно ли это или не..., но если это, сохраните следующее как a *.reg файл и импорт это.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\7-Zip.7z\shell\extract]
@="Extract to folder"

[HKEY_CURRENT_USER\Software\Classes\7-Zip.7z\shell\extract\command]
@="7z.exe x \"%1\" -o\"%1.d\""
0
ответ дан 07.12.2019, 11:05

Простой способ

Установка ExtractNow. Можно настроить его, чтобы сделать точно, что Вы хотите.


Твердый путь

Ручная модификация реестра следующим образом...

  • Запустить regedit как администратор

  • Открытый HKCR\.7z и посмотрите на (Default) значение. Примите во внимание то, что это (в моем случае, как пользователь PowerArchiver, это PASZIP)

  • Перейдите к ключу реестра в HKCR названный этим. (в моем случае HKCR\PASZIP)

  • Под тем ключом расширьтесь Shell подраздел

  • Установите (Default) оцените строке extract

  • Создайте новый названный подраздел extract

  • Установите (Default) значение для extract ключ к Extract to Folder

  • Создайте новый подраздел под extract именованный command

  • Установите (Default) значение command ключ к

    C:\Program Files\7-Zip\7zG.exe x "%1" -o* -aou
    

    (Вам, возможно, придется скорректировать путь),

Благодаря Justin Roettger для указания на корректную переменную имени, необходимую для этого.

Это должно быть этим. Теперь 7z файлы извлечены к папке с их собственным именем двойным щелчком. Для других расширений как .rar и .zip необходимо повторить, что это ступает для согласно ключам.

Если Вы только хотите внести изменения на своей учетной записи пользователя вместо в масштабе всей системы, изменить HKCU\Software\Classes вместо HKCR. HKCR виртуальная клавиша, из которой это является объединением HKLM\Software\Classes и HKCU\Software\Classes где данные в Вашей учетной записи (HKCU) переопределяют данные в масштабе всей системы (HKLM). Обычно работая regedit, поскольку Администратор подразумевает, что изменение HKCR изменяет данные в масштабе всей системы в HKLM.


Извлечение нескольких файлов

Конечно, это не будет работать, если у Вас будет несколько выбранных файлов. Если Вы хотите, чтобы это работало, необходимо создать следующий пакетный файл:

@echo off
:top
if "%1"=="" goto :EOF
7z.exe x "%1" -o"%~dpn1"
shift
goto top

Теперь, следуйте инструкциям выше. На самом последнем шаге, набор (Default) значение command ключ к C:\Path\To\File.bat %*

Все модификации реестра не тестируются из памяти, но должны быть корректными.

5
ответ дан 07.12.2019, 11:05

Теги

Похожие вопросы