descompacte arquivos zip contidos em um arquivo zip no Windows

descompacte arquivos zip contidos em um arquivo zip no Windows

Eu tenho um arquivo zip results.zip. Ele contém duas pastas que contêm vários arquivos zip - PASS/test1.zip, FAIL/test2.zip, FAIL/test3.zip.

No Linux é trivial descompactá-los em algumas etapas:

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

Alguns usuários do Windows reclamam que é complicado descompactar todos os arquivos do Windows. (Existem dezenas de zips dentro do zip principal.) Existe um mecanismo que permitiria expandir o conteúdo de todos os arquivos de uma só vez?

Algumas caixas de clientes são mais recentes, mas há muitas que ainda usam WinXP.

Responder1

Dê a elesdescompacte.exee um script em lote como

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

Responder2

TentarExtrair agora. Eu não testei esse recurso sozinho, mas funcionareivindicar apoiá-lo.

Responder3

Aqui está uma solução para Windows, assumindo que o 7zip está instalado no local padrão.

@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"
)

Isso foi adaptado daquihttps://social.technet.microsoft.com/Forums/ie/en-US/ccd7172b-85e3-4b4a-ad93-5902e0abd903/batch-file-extracting-all-files-from-nested-archives?forum=ITCG

Notas:

  1. A única maneira de fazer modificação de variáveis ​​usando os modificadores ~ é usar um loop for..in fictício. Se houver uma maneira melhor, edite.
  2. ~nx modifica a variável para torná-la um caminho completo + nome de arquivo.
  3. ~dpnx também faz a mesma coisa com% 0, ou seja, obtém o caminho completo e o nome do arquivo do script.
  4. -o* na linha de comando 7zip permite que o 7zip crie nomes de pastas sem a extensão .zip, como faz ao extrair com um clique com o botão direito na interface do usuário.
  5. ~n modifica a variável para torná-la um nome de arquivo sem extensão. ou seja, descarta o .zip
  6. Observe que o caractere de escape (para aspas) FORFILES /Pé ^(circunflexo) enquanto para CMD /Cit é \. Isso garante que ele lide com caminhos e nomes de arquivos com espaços também de forma recursiva, sem nenhum problema.
  7. Você pode remover o REM da instrução DEL se desejar que o arquivo zip seja excluído após a descompactação.

Responder4

Veja isso

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

"Manipulação de arquivos aninhados (extrair recursivamente arquivos que foram compactados em outros arquivos)."

SO: Windows 2K/XP/2003/Vista

informação relacionada