7-zip и Windows 7: дважды выберите «Извлечь в <папку>» по умолчанию

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

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

7z x <filename> -o<filename>

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

  • Не удается добавить сетевой принтер - Windows 7
  • Как мне получить доступ к SmartCtl в Windows 7?
  • Используйте системный зарезервированный раздел для создания другого раздела
  • Почему обновления для автозагрузки всегда выходят из строя на моем компьютере?
  • Создание ограниченной учетной записи пользователя в Windows 7
  • Как отображать китайские символы в блокноте?
  • Как установить Notepad ++ в качестве редактора по умолчанию?
  • Невозможно получить доступ к некоторым сайтам с любым браузером
  • 6 Solutions collect form web for “7-zip и Windows 7: дважды выберите «Извлечь в <папку>» по умолчанию”

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

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

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

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

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

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

    Этот поток стал немного запутанным из-за противоречивых ответов (мне потребовалось некоторое время, чтобы выяснить, какое из них было правильным решением), поэтому я подумал, что было бы неплохо подвести итоги по сообщениям Афразира и Джастина Роттгера, сочетающихся с моими собственными опыт:

    1. Запустить regedit как администратор
    2. Открыть HKEY_CLASSES_ROOT\7-Zip.7z
    3. Под этим ключом разверните подклассу Shell
    4. Установите значение (Default) в extract строки
    5. Создайте новый под-ключ с именем extract
    6. Установите значение (Default) для ключа extract для Extract to Folder
    7. Создайте новый под-ключ в command extract named
    8. Задайте значение (Default) command клавиши:

    C:\ProgramFiles\7-Zip\7zG.exe x "%1" -o*

    (Возможно, вам придется отрегулировать это, чтобы соответствовать пути установки 7zip)

    Вместо 7z с -aou, как Джастин Реттгер, предположил, что я закончил использование 7zG, потому что таким образом вы можете переписать, если хотите, как извлечение с помощью обычного контекстного меню.

    Это оно! 7z файлы теперь извлекаются в папку со своим именем двойным щелчком. Для других расширений, таких как .rar и .zip, вам нужно повторить эти шаги для соответствующих клавиш. (Например, HKEY_CLASSES_ROOT \ 7-Zip.rar и HKEY_CLASSES_ROOT \ 7-Zip.zip и т. Д.)

    Ох и уточнить: он работает с несколькими выбранными файлами. Нет необходимости в пакетном файле.

    Легкий способ

    Установите ExtractNow . Вы можете настроить его так, как хотите.


    Трудный путь

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

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

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

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

    • Под этим ключом разверните подклассу Shell

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

    • Создайте новый под-ключ с именем extract

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

    • Создайте новый под-ключ в command extract named

    • Установите значение (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 %*

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

    Вот сценарий PowerShell, который я написал на основе ответа @ haiggoh. Прежде чем запускать его, вам нужно открыть 7-zip, перейдите в Tools-> Options и свяжите 7-zip с необходимыми расширениями файлов. После этого запустите следующий сценарий PowerShell (с правами администратора):

     $7zInstallationFolder = 'C:\Program Files\7-Zip' $reg = [Microsoft.Win32.RegistryKey]::OpenBaseKey([Microsoft.Win32.RegistryHive]::ClassesRoot, [Microsoft.Win32.RegistryView]::Default) $subKeys = $reg.GetSubKeyNames() | where { $_ -match '7-Zip.' } foreach ($keyName in $subKeys) { $key = $reg.OpenSubKey($keyName + '\shell\open\command', $true) $key.SetValue('', '"' + $7zInstallationFolder + '\7zG.exe" x "%1" -o*') } 

    Конечно, убедитесь, что переменная $7zInstallationFolder содержит правильный путь к вашей 7-zip-установке.

    Передайте параметры следующим образом:

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

    Я вспоминаю жалобы на Windows 7, не позволяющие напрямую редактировать действия с файлами. Я не знаю, верно это или нет … но если это так, сохраните следующее как файл *.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\"" 

    Вот файл .reg, который настраивает Extract to folder как поведение по умолчанию при двойном щелчке файлов с одним из следующих расширений – 7z / CAB / GZ / GZIP / RAR / TAR / ZIP. Вы можете сделать это для других расширений файлов, используя тот же подход. Я предпочитаю поведение Windows по умолчанию для установки ISO / VHD, поэтому я не изменил это, и 7-Zip поддерживает многие другие типы файлов, с которыми я обычно не сталкиваюсь, поэтому я не изменил их для них.

    Вы можете вернуть это, перейдя в 7-Zip File Manager, Tools, Options и изменив ассоциации файлов по своему усмотрению.

    Я тестировал на Windows 10 x64 / 7-Zip 15.12 x64. Поскольку он использует C: \ Program Files для пути к 7-Zip, вам определенно нужен x64 Windows + x64 7-Zip, но я тестировал только в Windows 10.

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

    Если уже есть папка с таким именем, она предоставит вам ту же самую 7-Zip-подсказку, которую вы получите нормально, с параметрами «Да / Да» для «Все / Авто переименовать / Нет / Нет для всех».

     Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\SOFTWARE\Classes.7z] @="7-Zip.7z" [HKEY_CURRENT_USER\SOFTWARE\Classes.cab] @="7-Zip.cab" [HKEY_CURRENT_USER\SOFTWARE\Classes.gz] @="7-Zip.gz" [HKEY_CURRENT_USER\SOFTWARE\Classes.gzip] @="7-Zip.gzip" [HKEY_CURRENT_USER\SOFTWARE\Classes.rar] @="7-Zip.rar" [HKEY_CURRENT_USER\SOFTWARE\Classes.tar] @="7-Zip.tar" [HKEY_CURRENT_USER\SOFTWARE\Classes.zip] @="7-Zip.zip" [HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.7z] @="7z Archive" [HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.7z\DefaultIcon] @="C:\Program Files\7-Zip\7z.dll,0" [HKEY_CLASSES_ROOT\7-Zip.7z\shell] @="extract" [HKEY_CLASSES_ROOT\7-Zip.7z\shell\extract] @="Extract to Folder" [HKEY_CLASSES_ROOT\7-Zip.7z\shell\extract\command] @="\"C:\Program Files\7-Zip\7zG.exe\" x \"%1\" -o*" [HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.7z\shell\open] @="" [HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.7z\shell\open\command] @="\"C:\Program Files\7-Zip\7zFM.exe\" \"%1\"" [HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.cab] @="cab Archive" [HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.cab\DefaultIcon] @="C:\Program Files\7-Zip\7z.dll,7" [HKEY_CLASSES_ROOT\7-Zip.cab\shell] @="extract" [HKEY_CLASSES_ROOT\7-Zip.cab\shell\extract] @="Extract to Folder" [HKEY_CLASSES_ROOT\7-Zip.cab\shell\extract\command] @="\"C:\Program Files\7-Zip\7zG.exe\" x \"%1\" -o*" [HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.cab\shell\open] @="" [HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.cab\shell\open\command] @="\"C:\Program Files\7-Zip\7zFM.exe\" \"%1\"" [HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.gz] @="gz Archive" [HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.gz\DefaultIcon] @="C:\Program Files\7-Zip\7z.dll,14" [HKEY_CLASSES_ROOT\7-Zip.gz\shell] @="extract" [HKEY_CLASSES_ROOT\7-Zip.gz\shell\extract] @="Extract to Folder" [HKEY_CLASSES_ROOT\7-Zip.gz\shell\extract\command] @="\"C:\Program Files\7-Zip\7zG.exe\" x \"%1\" -o*" [HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.gz\shell\open] @="" [HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.gz\shell\open\command] @="\"C:\Program Files\7-Zip\7zFM.exe\" \"%1\"" [HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.gzip] @="gzip Archive" [HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.gzip\DefaultIcon] @="C:\Program Files\7-Zip\7z.dll,14" [HKEY_CLASSES_ROOT\7-Zip.gzip\shell] @="extract" [HKEY_CLASSES_ROOT\7-Zip.gzip\shell\extract] @="Extract to Folder" [HKEY_CLASSES_ROOT\7-Zip.gzip\shell\extract\command] @="\"C:\Program Files\7-Zip\7zG.exe\" x \"%1\" -o*" [HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.gzip\shell\open] @="" [HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.gzip\shell\open\command] @="\"C:\Program Files\7-Zip\7zFM.exe\" \"%1\"" [HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.rar] @="rar Archive" [HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.rar\DefaultIcon] @="C:\Program Files\7-Zip\7z.dll,3" [HKEY_CLASSES_ROOT\7-Zip.rar\shell] @="extract" [HKEY_CLASSES_ROOT\7-Zip.rar\shell\extract] @="Extract to Folder" [HKEY_CLASSES_ROOT\7-Zip.rar\shell\extract\command] @="\"C:\Program Files\7-Zip\7zG.exe\" x \"%1\" -o*" [HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.rar\shell\open] @="" [HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.rar\shell\open\command] @="\"C:\Program Files\7-Zip\7zFM.exe\" \"%1\"" [HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.tar] @="tar Archive" [HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.tar\DefaultIcon] @="C:\Program Files\7-Zip\7z.dll,13" [HKEY_CLASSES_ROOT\7-Zip.tar\shell] @="extract" [HKEY_CLASSES_ROOT\7-Zip.tar\shell\extract] @="Extract to Folder" [HKEY_CLASSES_ROOT\7-Zip.tar\shell\extract\command] @="\"C:\Program Files\7-Zip\7zG.exe\" x \"%1\" -o*" [HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.tar\shell\open] @="" [HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.tar\shell\open\command] @="\"C:\Program Files\7-Zip\7zFM.exe\" \"%1\"" [HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.zip] @="zip Archive" [HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.zip\DefaultIcon] @="C:\Program Files\7-Zip\7z.dll,1" [HKEY_CLASSES_ROOT\7-Zip.zip\shell] @="extract" [HKEY_CLASSES_ROOT\7-Zip.zip\shell\extract] @="Extract to Folder" [HKEY_CLASSES_ROOT\7-Zip.zip\shell\extract\command] @="\"C:\Program Files\7-Zip\7zG.exe\" x \"%1\" -o*" [HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.zip\shell\open] @="" [HKEY_CURRENT_USER\SOFTWARE\Classes\7-Zip.zip\shell\open\command] @="\"C:\Program Files\7-Zip\7zFM.exe\" \"%1\"" 

    Interesting Posts

    В чем разница между «шлюзом по умолчанию» и «предпочтительным DNS-сервером»?

    UEFI с таблицей разделов MBR?

    Возможно ли повторно назначить «специальные» клавиши на клавиатуре без водителя на другие функции в Windows 7

    В браузере Google Chrome, почему Gmail использует большую часть процессора при включении аппаратного ускорения?

    Синхронизирующий сетевой накопитель с onedrive

    Установить принтер через профили в Windows XP?

    Есть ли способ заставить отчет сообщить размер каталога (рекурсивно), включая только размеры файлов?

    Настроить рейд 1 после установки ОС

    Инструмент Windows 7 для захвата кодов сканирования клавиатуры

    Office 2013 удаляет висячие

    Удалить ассоциацию файлов Windows с использованием REG-файла

    VT-x включен, но не работает? Winows 8 не может запускать 64-разрядную виртуальную машину

    Насколько большой риск представляют собой популярные расширения Chrome?

    Stealth Ports даже при общении?

    Не удается получить доступ к общему диску в одном и том же имени машины uisng, но может получить доступ к IP-адресу

    Давайте будем гением компьютера.