Estrai un determinato file da un archivio con 7-Zip dalla riga di comando


34

Se ho un archivio, ad esempio, some.zipche contiene uno o più file, come posso estrarre solo un file (conosco il nome del file) con 7-Zip dalla riga di comando in Windows?

Risposte:


32

Come seguito della risposta di Surfasb , aggiungi un flag -r alla fine per ripetere:

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

Supporto di più filtri:

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

Esempio:

Riga di comando di filtri multipli:

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

PS: utilizzo 7za.exe anziché 7z.exe. Questo è il comando effettivo che uso nel mio script:

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

1
Come posso aggiungere più filtri di file, diciamo .XMLe .zip? Scusate se sto dirottando questa discussione, non volevo aggiungere una domanda duplicata.
Fr0zenFyr,

1
Dovrebbe andare bene separando i filtri dallo spazio. Vedi la risposta modificata sopra. :)
zionyx,

E come estraggo un file specifico da un archivio all'interno dell'archivio? Diciamo che il file che sto cercando è "MyFile.txt" all'interno di "SubArchive.zip" all'interno di "MainArchive.zip". È possibile?
PeterCo

1
@PeterCo, penso che il comando sia in grado di estrarre solo SubArchive.zipdal MainArchive.ziptuo caso. Si può eseguire un follow-up comando per estrarre MyFile.txtdal SubArchive.zipdopo l'estrazione iniziale.
zionyx,

13

Basta aggiungere il nome file alla fine.

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


1
Come posso aggiungere più filtri di file, diciamo .XMLe .zip? Scusate se sto dirottando questa discussione, non volevo aggiungere una domanda duplicata.
Fr0zenFyr,

È una domanda diversa @ Fr0zenFyr. Per chiarire che non è un duplicato, puoi fare riferimento a questa domanda e quindi specificare in che modo il tuo è diverso.
music2myear il

@ music2myear: grazie per il chiarimento. La risposta più votata da zionyx include già una soluzione. Il mio commento ha più di 2 anni, quindi sarebbe una supposizione ragionevole supporre che ho usato la soluzione sopra o ho già pubblicato una domanda e ho trovato una risposta (A proposito, questo è stato il mio caso). Il mio post risolto è su SO e il thread originale creato prima che il mio commento sia qui, quindi non ho potuto collegarmi a questa domanda. :)
Fr0zenFir

Nota: come è scritto qui, non inserire spazio tra -o e outputdir.
Giullare del re il

4

Se guardi la pagina man di 7z scoprirai che il seguente comando può essere usato per estrarre un file da un archivio 7z (anche se nella pagina man manca l'uso del percorso):

7z x <archive> <path to file>

Esempi:

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

In alternativa puoi usare e.

La guida per l'utente della versione della riga di comando sembra avere ulteriori informazioni sull'uso effettivo.


2
È questo il percorso relativo all'interno dell'archivio?
music2myear il

Sì, "folderwithin" è una cartella nella radice dell'archivio.
Giullare del re il

1

Si noti che 7zha la seguente sintassi (osservare gli spazi e le virgolette che circondano l' "-oMy Folder"opzione per impostare il nome della cartella di output, mi ci sono volute ore per capire, come ho fatto inizialmente - nel modo sbagliato: * -o "My Folder"*):

7z e "my zip.zip" "-oMy Folder" *.jpg "all of these.*" -r
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.