7-zip & Windows 7 : 더블 클릭시“Extract to <folder>”를 기본값으로 설정


15

<folder_same_as_file_name>단순히 7-zip을 실행하는 대신 파일을 두 번 클릭 할 때 컨텍스트 메뉴 "추출"을 수행 할 수있는 방법을 찾으려고합니다 . 이를 수행하는 간단한 방법이 있습니까?

대안으로, 다음과 같이 매개 변수를 전달할 수 있습니다.

7z x <filename> -o<filename>

그러나이 설정 방법을 잘 모르겠습니다 (파일 이름 매개 변수를 전달하는 방법과 직접 수행 할 수 있습니까? 아니면 배치 파일을 작성하고 대신 파일 이름을 전달해야합니까? 후자는 자극적으로 우아하지 않지만 뭐든간에

답변:


4

불행히도, afrazier의 배치 프로그램 방법 은 작동하지 않습니다. Windows는 그런 여러 파일을 열지 않습니다. 프로그램으로 여러 파일을 열려고하면 Windows는 프로그램의 단일 인스턴스를 열지 않고 해당 파일을 여러 인수로 해당 인스턴스에 전달합니다. 대신, Windows는 프로그램의 많은 인스턴스 (파일이있는만큼의 인스턴스)를 열고 각 인스턴스에 하나의 파일을 전달합니다. % *를 사용하고 여러 파일을 단일 .bat에 전달하고 .bat가 각 파일을 한 번에 하나씩 처리하는 루프를 실행하도록하는 것이 좋지만, 불행히도 이러한 파일을 설정할 때 % 1 만 사용할 수 있습니다. 레지스트리의 작업 종류

시간이있는 사람은 mutex 객체를 사용하여 이미 실행중인 다른 인스턴스가 있는지 확인하고 존재하는 경우 해당 파일을 해당 인스턴스로 전달한 다음 닫습니다. 원래 인스턴스가 해당 파일을 넣을 프로그램을 작성할 수 있습니다. 자체 파일 처리가 완료되면 대기열에 넣습니다. 배치는 tasklistand find도 사용하여 트릭을 수행 할 수 있지만 뮤텍스만큼 좋은 솔루션은 아닙니다.

어쨌든 올바른 폴더 이름을 얻으려면 extract 명령 레지스트리 값으로 이것을 시도하십시오.

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

그러면 소스 아카이브와 이름이 같은 소스 아카이브와 동일한 디렉토리에 새 폴더가 생성됩니다 (파일 확장자).

또한 -aou파일 이름 충돌을 자동으로 피하기 위해 스위치를 추가했습니다 (7z는 덮어 쓸 것인지 여부를 묻는 메시지 대신 파일 끝에 숫자를 추가합니다).


-o*아카이브에 파일이 둘 이상있는 경우에만 수행 할 수있는 방법이 있습니까? 마찬가지로 아카이브에 파일이나 폴더가 하나만있는 경우 현재 디렉토리로 추출 할 수 있습니까?
NightExcessive

되어있는 Windows 10의 기본 "C:\Program Files\7-Zip\7zFM.exe" x "%1" -o* -aou그래서 그냥 7Z에 7zFM을 변경"C:\Program Files\7-Zip\7z.exe" x "%1" -o* -aou
jsherk

12

이 스레드는 모순 된 답변으로 인해 약간 혼란 스럽습니다 (올바른 솔루션인지 파악하는 데 꽤 시간이 걸렸습니다). 경험담:

  1. 관리자로 regedit를 시작하십시오
  2. 열다 HKEY_CLASSES_ROOT\7-Zip.7z
  3. 해당 키 아래에서 Shell하위 키를 확장하십시오
  4. 설정 (Default)문자열에 값을extract
  5. 이름이 지정된 새 하위 키를 만듭니다. extract
  6. 설정 (Default)가치를 extract핵심Extract to Folder
  7. extract이름 아래에 새 하위 키를 만듭니다.command
  8. (Default)값을 다음과 같이 설정하십시오 command.

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

(7-Zip 설치 경로와 일치하도록 조정해야 할 수도 있습니다)

Justin Roettger와 같은 -aou가있는 7z 대신 7zG를 사용하도록 제안했습니다.이 방법을 사용하면 일반 컨텍스트 메뉴로 추출하는 것을 좋아하는 경우 덮어 쓰도록 선택할 수 있기 때문입니다.

그게 다야! 7z 파일은 이제 더블 클릭으로 자체 이름을 가진 폴더로 추출됩니다. .rar 및 .zip과 같은 다른 확장자의 경우 해당 키에 대해이 단계를 반복해야합니다. (예 : HKEY_CLASSES_ROOT \ 7-Zip.rar 및 HKEY_CLASSES_ROOT \ 7-Zip.zip 등)

아, 분명히하기 위해 : 선택한 여러 파일에서도 작동합니다. 배치 파일이 필요하지 않습니다.


1
해당 레지스트리 경로가 보이지 않습니다. 64 비트 7zip이있는 Windows 8을 사용하고 있습니다.
phillipwei

이 게시물 이후 많은 것이 바뀌었지만 여전히 훌륭하게 작동합니다 ... 7-Zip.7z가 아닌 7z_auto_file 아래에있었습니다. 내가 한 것은 기존 "명령"을 C:\Program Files\7-Zip\7zG.exe x "%1" -o*voila 로 변경하는 것 입니다.
neokio

Windows 10에서는 7-Zip 파일 관리자 ( Tools -> Options...메뉴 를 통해 ) 에서 하나 이상의 파일을 7-Zip과 연결할 때까지 경로가 표시되지 않았습니다 .
Chris Nolet

왜 이것이 더 이상 Windows 10에서 작동하지 않는지 알고 있습니까? 경로는 동일 해 보이지만, 즉시 닫히는 검은 색 콘솔 창이 나오고 아무것도 추출되지 않습니다. 이 스레드의 모든 메소드를 시도했습니다.
Ryan Weiss

5

쉬운 방법

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\ClassesHKCU\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 %*

모든 레지스트리 수정은 메모리에서 테스트되지 않았지만 정확해야합니다.


%~dpn1파일 연결에서 작동 합니까 ? (Windows XP에는 없습니다. 또한 x확장 을 잊었습니다 .)
user1686

1
@grawity : 당신은 x출력 폴더 이름에 원하지 않습니다 . 그것이 작동하는 것에 관해서는 ... 좋은 질문입니다. 다음 주소로 수정하겠습니다.
afrazier

흠, 좋은 지적이다.
user1686 년

아주 가깝지만 아직은 아닙니다. 제공된 afrazier와 grawity 코드로 재생 한 후, 내가 말할 수있는 "C:\Program Files\7-Zip\7z.exe" x "%1" -o"%~dpn1" 달리기의 이점을 얻지 못했기 때문에 기본 키 값이 설정되었으며 cmd.exe7-zip의 기본 열기는 신경 쓰지 않았습니다. 그러나 이것은 %~dpn1zip 파일과 동일한 폴더에서 압축을 풀고 있습니다. 은 \"%1.d\"그것을 가까이,하지만 확장 떨어져 제거하지 않도록, zip 파일과 같은 폴더에 \ filename.zip.d \ 하위 디렉토리에 있습니다. 나는 두 가지의 하이브리드를 시도했지만 운이 없다. 다른 제안?
schodge

배치 파일을 사용해야 할 것입니다.
afrazier

2

@haiggoh의 답변을 기반으로 작성한 PowerShell 스크립트는 다음과 같습니다. 실행하기 전에 7-zip을 열고 도구-> 옵션으로 이동하여 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 설치의 올바른 경로가 포함되어 있는지 확인하십시오 .


되 돌리는 방법? 제거 및 재설치가 작동하지 않음
Lombas

@ Lombas는 7-zip을 해당 확장과 다시 연결하려고 시도합니다. 작동하지 않으면 레지스트리 키를 제거하고 다시 시도하십시오.
xx77aBs

확장과 7-zip을 다시 연결하는 것이 효과가있었습니다. 대단히 감사합니다!
Lombas

0

다음과 같은 매개 변수를 전달하십시오.

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\""

0

다음은 7z / CAB / GZ / GZIP / RAR / TAR / ZIP 확장자 중 하나를 가진 파일을 두 번 클릭 할 때 폴더로 추출 폴더를 기본 동작으로 구성하는 .reg 파일입니다. 동일한 접근 방식을 사용하여 다른 파일 확장자에 대해서도 가능합니다. ISO / VHD 마운트에 Windows 기본 동작을 선호하므로 변경하지 않았으며 7-Zip은 일반적으로 발생하지 않는 많은 다른 파일 형식을 지원하므로 변경하지 않았습니다.

7-Zip 파일 관리자, 도구, 옵션으로 이동하여 원하는대로 파일 연결을 변경하여이를 되돌릴 수 있습니다.

Windows 10 x64 / 7-Zip 15.12 x64에서 테스트했습니다. 7-Zip 경로에는 C : \ Program Files를 사용하므로 x64 Windows + x64 7-Zip이 필요하지만 Windows 10에서만 테스트했습니다.

이전과 동일한 오른쪽 클릭 옵션을 사용할 수 있습니다. 이렇게하면 두 번 클릭 할 때 발생하는 일과 7 가지 파일 유형에 대해서만 변경됩니다 (동일한 접근 방식을 사용하여 다른 파일 유형에 대해서도 가능).

해당 이름의 폴더가 이미있는 경우 예 / 예에서 모두 / 자동 이름 바꾸기 / 아니요 / 아니요로 모두에 대한 옵션과 함께 정상적으로 제공되는 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\""

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.