Windows의 zip 파일에 포함된 zip 파일의 압축을 풉니다.

Windows의 zip 파일에 포함된 zip 파일의 압축을 풉니다.

zip 파일이 있습니다 results.zip. 여기에는 여러 개의 zip 파일( PASS/test1.zip, FAIL/test2.zip, ) 이 포함된 두 개의 폴더가 포함되어 있습니다 FAIL/test3.zip.

Linux에서는 몇 가지 단계를 거쳐 압축을 푸는 것이 간단합니다.

$ unzip results.zip
$ echo FAIL/*.zip PASS/*.zip | xargs -n1 unzip

일부 Windows 사용자는 Windows에서 모든 파일의 압축을 푸는 것이 번거롭다고 불평합니다. (메인 zip 안에 수십 개의 zip이 있습니다.) 모든 파일의 내용을 한 번에 확장할 수 있는 메커니즘이 있습니까?

일부 고객 상자는 최신 버전이지만 여전히 WinXP를 사용하고 있는 고객 상자도 많습니다.

답변1

그들에게 줘압축 해제.exe그리고 다음과 같은 배치 스크립트

unzip results.zip
for %%i in (FAIL\*.zip PASS\*.zip) do unzip %%i

답변2

노력하다지금 추출. 이 기능을 직접 테스트하지는 않았지만 그렇습니다.지지한다고 주장.

답변3

다음은 7zip이 기본 위치에 설치되어 있다고 가정하는 Windows용 솔루션입니다.

@echo off
Setlocal EnableDelayedExpansion
Set source=%1
Set SELF=%~dpnx0
For %%Z in (!source!) do (
    set FILENAME=%%~nxZ
)
set FILENAME=%FILENAME:"=%
"%PROGRAMFILES%\7-zip\7z.exe" x -o* -y "%FILENAME%"
rem DEL "%FILENAME%"
For %%Z in (!source!) do (
    set FILENAME=%%~nZ
)
for %%a in (zip rar jar z bz2 gz gzip tgz tar lha iso wim cab rpm deb) do (
    
    forfiles /P ^"%FILENAME%^" /S /M *.%%a /C "cmd /c if @isdir==FALSE \"%SELF%\" @path"
)

여기에서 수정되었습니다.https://social.technet.microsoft.com/Forums/ie/en-US/ccd7172b-85e3-4b4a-ad93-5902e0abd903/batch-file-extracting-all-files-from-nested-archives?forum=ITCG

노트:

  1. ~ 수정자를 사용하여 변수 수정을 수행하는 유일한 방법은 더미 for..in 루프를 사용하는 것입니다. 더 좋은 방법이 있으면 수정해주세요.
  2. ~nx는 변수를 수정하여 전체 경로+파일 이름으로 만듭니다.
  3. ~dpnx는 %0에도 동일한 작업을 수행합니다. 즉, 스크립트의 전체 경로와 파일 이름을 가져옵니다.
  4. 7zip 명령줄의 -o*를 사용하면 GUI에서 마우스 오른쪽 버튼을 클릭하여 압축을 풀 때처럼 7zip이 .zip 확장자 없이 폴더 이름을 만들 수 있습니다.
  5. ~n은 변수를 수정하여 확장자가 없는 파일 이름으로 만듭니다. 즉, .zip을 삭제합니다.
  6. 의 이스케이프 문자(따옴표의 경우)는 FORFILES /P( ^캐럿)이고 의 경우 CMD /C입니다 \. 이렇게 하면 공백이 포함된 경로와 파일 이름도 문제 없이 재귀적으로 처리할 수 있습니다.
  7. 압축을 푼 후 zip 파일을 삭제하려면 DEL 문에서 REM을 제거하면 됩니다.

답변4

이것 좀 봐

http://www.softpedia.com/get/Compression-tools/Multi-Unpacker.shtml

"중첩된 아카이브 처리(다른 아카이브에 압축된 아카이브를 반복적으로 추출)."

운영체제: 윈도우 2K / XP / 2003 / 비스타

관련 정보