Si j'ai des archives, par exemple, some.zip
qui contient un ou plusieurs fichiers, comment puis-je extraire un seul fichier (je connais le nom du fichier) avec 7-Zip à partir de la ligne de commande sous Windows ?
Réponses
Trop de publicités?Dans le prolongement de Réponse de surfasb ajoutez un drapeau -r à la fin pour la récursivité :
7z e [archive.zip] -o[outputdir] [fileFilter] -r
Prise en charge de plusieurs filtres :
7z e [archive.zip] -o[outputdir] [fileFilter_1] [fileFilter_2] -r
Exemple :
Ligne de commande pour filtres multiples :
7z e archive.zip -o outputdir *.xml *.dll -r
PS : J'utilise 7za.exe au lieu de 7z.exe. C'est la commande que j'utilise dans mon script :
7za.exe x archive.zip -o outputdir *.xml *.pdb *.exe *.ocx *.dll -r
Si vous regardez le page de manuel pour 7z, vous trouverez que la commande suivante peut être utilisée pour extraire un fichier d'une archive 7z (bien que l'utilisation du chemin d'accès soit absente de la page de manuel) :
7z x <archive> <path to file>
Exemples :
7z x backup.7z *.html
7z x backup.7z folderwithin/myfile.html
Vous pouvez également utiliser e
.
En version en ligne de commande guide de l'utilisateur semble contenir plus d'informations sur l'utilisation réelle.
Il convient de noter que 7z
a la syntaxe suivante (observez les espaces et les guillemets qui entourent l'élément "-oMy Folder"
pour définir le nom du dossier de sortie, m'a pris des heures pour le découvrir, car je l'avais fait à l'origine - de la mauvaise manière : * -o "My Folder"
*) :
7z e "my zip.zip" "-oMy Folder" *.jpg "all of these.*" -r
J'ai constaté que sur la ligne de commande zsh, avec 7-zip 16.06, je devais mettre des guillemets doubles autour de l'argument du filtre joker. Par exemple, ceci n'a pas trouver les fichiers PDF à extraire :
7z e "archive has pdf in subdirectory.zip" -r *.pdf
mais en citant le filtre joker a fait trouver et extraire le fichier PDF qui se trouvait dans un sous-répertoire de l'archive zip, comme ceci :
7z e "archive has pdf in subdirectory.zip" -r "*.pdf"