Extrair um determinado arquivo de um arquivo morto com o 7-Zip na linha de comando


34

Se eu tenho um arquivo, por exemplo, some.zipque contém um ou mais arquivos, como posso extrair apenas um arquivo (eu sei o nome do arquivo) com o 7-Zip na linha de comando do Windows?

Respostas:


32

Como acompanhamento da resposta do surfasb , adicione um sinalizador -r no final para recursar:

7z e [archive.zip] -o[outputdir] [fileFilter] -r

Suporte a vários filtros:

7z e [archive.zip] -o[outputdir] [fileFilter_1] [fileFilter_2] -r

Exemplo:

Linha de comando de vários filtros:

7z e archive.zip -o outputdir *.xml *.dll -r

PS: Eu uso o 7za.exe em vez do 7z.exe. Este é o comando real que eu uso no meu script:

7za.exe x archive.zip -o outputdir *.xml *.pdb *.exe *.ocx *.dll -r

1
Como posso adicionar vários filtros de arquivo, digamos .XMLe .zip? Desculpe se estou sequestrando este tópico, mas não queria adicionar uma pergunta duplicada.
precisa saber é o seguinte

1
Deve ficar bem, separando os filtros pelo espaço. Veja a resposta editada acima. :)
zionyx

E como extraio um arquivo específico de um arquivo dentro do arquivo? Digamos que o arquivo que estou procurando seja "MyFile.txt" dentro de "SubArchive.zip" dentro de "MainArchive.zip". Isso é possível?
PeterCo

1
@ PeterCo, acho que o comando só é capaz de extrair SubArchive.zipdo MainArchive.zipno seu caso. Você pode executar um acompanhamento comando para extrair MyFile.txta partir SubArchive.zipapós a extração inicial.
Zionyx

13

Você acabou de adicionar o nome do arquivo no final.

7z e [archive.zip]-o [outputdir] [fileFilter]


1
Como posso adicionar vários filtros de arquivo, digamos .XMLe .zip? Desculpe se estou sequestrando este tópico, mas não queria adicionar uma pergunta duplicada.
precisa saber é o seguinte

É uma pergunta diferente @ Fr0zenFyr. Para deixar claro que não é duplicado, você pode fazer referência a essa pergunta por conta própria e especificar como a sua é diferente.
precisa saber é o seguinte

@ music2myear: Obrigado pelo esclarecimento. A resposta mais votada por zionyx já inclui uma solução. Meu comentário tem mais de 2 anos, portanto, seria razoável supor que eu usei a solução acima ou já postei uma pergunta e encontrei uma resposta (BTW, esse era o meu caso). Minha postagem resolvida está no SO e o tópico original foi criado antes que meu comentário chegasse, por isso não consegui vincular a esta pergunta. :)
Fr0zenFyr

Nota: como está escrito aqui, não coloque espaço entre -o e outputdir.
Bobo do rei

4

Se você olhar a página de manual para 7z, verá que o seguinte comando pode ser usado para extrair um arquivo de um arquivo 7z (embora o uso do caminho esteja ausente na página de manual):

7z x <archive> <path to file>

Exemplos:

7z x backup.7z *.html
7z x backup.7z folderwithin/myfile.html

Alternativamente, você pode usar e.

O guia do usuário da versão da linha de comando parece ter mais informações sobre o uso real.


2
Esse é o caminho relativo dentro do arquivo morto?
precisa saber é o seguinte

Sim, a "pasta dentro" é uma pasta na raiz do arquivo morto.
Bobo do rei

1

Observe que 7ztem a seguinte sintaxe (observe os espaços e as aspas que cercam a "-oMy Folder"opção de definir o nome da pasta de saída, levei horas para descobrir, como fiz originalmente - da maneira errada: * -o "My Folder"*):

7z e "my zip.zip" "-oMy Folder" *.jpg "all of these.*" -r
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.