Lote o comando “Extrair Aqui”

2

Eu gostaria de agrupar o comando "Extrair aqui ..." em uma pasta completa. Todo tipo de arquivo deve ser descompactado na pasta atual com o nome do arquivo. Eu encontrei alguns scripts BATCH por apenas * .zip, mas eu não me importo com o tipo de arquivo, desde que o meu arquivador possa abri-lo.

Alguém sabe que tipo de arquivador tem essa funcionalidade de dosagem? Eu não consigo encontrá-lo em 7-zip ou winrar.

No pseudo:

Given folder x
foreach archiveFile in x or descendant of x
unzip archiveFile.extension >> "folder of archiveFile/archiveFile"

Atualizar
Eu tentei o seguinte apenas para arquivos zip:

dir /s /b *.zip > allzips.txt
for /F %%x in (allzips.txt) do unzip %%x

Em que unzip ainda é uma função desconhecida.

    
por Marnix 26.08.2011 / 15:34

1 resposta

5

EDIT Dado: usando script em lote.

Você pode querer usar uma ferramenta zip de terceiros (recomendamos a versão de linha de comando 7-ZIP chamada 7z.exe) para fazer isso.

com 7z, a sintaxe é a seguinte:

7z <command> [<switch>...] <base_archive_name> [<arguments>...]

Para extrair o comando seria:

7z e file.zip -y

a opção -y assume a resposta "Sim" para quaisquer perguntas que possam surgir durante a extração, como solicitações de sobregravação.

Então seu comando irá ler

CD "C:\Location\Of\ZipFiles"
FOR /F "USEBACKQ tokens=*" %%F IN ('DIR /b *.zip') DO (7z e "%%F" -y)

Se você deseja enviá-los para um local diferente, você pode usar a opção -o e especificar o diretório:

7z e "%%F" -y -oC:\Some\Other\Folder\

EDITAR:

Para executar a extração com caminhos completos e especificar apenas todos os arquivos ZIP, use este:

7z x -tzip "C:\Location\of\zips\*"

Ou até mais doido ... todos os arquivos ZIP na unidade C:

7z x -r -tzip "C:\*"

EDIT2:

Tornando-o compatível com o seu arquivo de saída:

dir /s /b *.zip > allzips.txt
for /F %%x in (allzips.txt) do (7z x -tzip "%%x")
    
por 26.08.2011 / 15:55