183 votes

Comment décompresser un fichier en utilisant la ligne de commande ?

Puis-je dézipper des fichiers par la ligne de commande ? De préférence à l'aide d'outils open source/gratuits.

234voto

Brian Points 7072

Si vous avez déjà java sur votre PC, et que le répertoire bin se trouve dans votre chemin (dans la plupart des cas), vous pouvez utiliser la ligne de commande :

jar xf test.zip

ou si ce n'est pas sur votre chemin :

C:\Java\jdk1.6.0_03\bin>jar xf test.zip

Ensemble complet d'options pour l'outil jar disponible aquí .

Exemples :

Extract jar file
    jar x[v]f jarfile [inputfiles] [-Joption] 
    jar x[v] [inputfiles] [-Joption]

57voto

Red33mer Points 187

46voto

ninesided Points 12355

7-Zip Il s'agit d'un logiciel libre, gratuit et compatible avec un large éventail de formats.

7z.exe x myarchive.zip

42voto

Justin Godden Points 197

Tout d'abord, écrivez un utilitaire de dézippage à l'aide de vbscript pour déclencher la fonctionnalité de dézippage native de Windows. Ensuite, faites sortir le script à partir de votre fichier batch et appelez-le. Ensuite, c'est aussi bon qu'en mode autonome. Je l'ai fait dans le passé pour de nombreuses tâches. De cette façon, il n'est pas nécessaire d'utiliser des applications tierces, il suffit d'un seul fichier batch qui fait tout.

J'ai mis un exemple sur mon blog sur la façon de dézipper un fichier en utilisant un fichier batch :

' j_unzip.vbs
'
' UnZip a file script
'
' By Justin Godden 2010
'
' It's a mess, I know!!!
'

' Dim ArgObj, var1, var2
Set ArgObj = WScript.Arguments

If (Wscript.Arguments.Count > 0) Then
 var1 = ArgObj(0)
Else
 var1 = ""
End if

If var1 = "" then
 strFileZIP = "example.zip"
Else
 strFileZIP = var1
End if

'The location of the zip file.
REM Set WshShell = CreateObject("Wscript.Shell")
REM CurDir = WshShell.ExpandEnvironmentStrings("%%cd%%")
Dim sCurPath
sCurPath = CreateObject("Scripting.FileSystemObject").GetAbsolutePathName(".")
strZipFile = sCurPath & "\" & strFileZIP
'The folder the contents should be extracted to.
outFolder = sCurPath & "\"

 WScript.Echo ( "Extracting file " & strFileZIP)

Set objShell = CreateObject( "Shell.Application" )
Set objSource = objShell.NameSpace(strZipFile).Items()
Set objTarget = objShell.NameSpace(outFolder)
intOptions = 256
objTarget.CopyHere objSource, intOptions

 WScript.Echo ( "Extracted." )

' This bit is for testing purposes
REM Dim MyVar
REM MyVar = MsgBox ( strZipFile, 65, "MsgBox Example"

Utilisez-le comme ça :

cscript //B j_unzip.vbs zip_file_name_goes_here.zip

25voto

granadaCoder Points 6390

Comme d'autres l'ont fait remarquer, 7-zip est excellent.

Note : Je vais compresser puis décompresser un fichier. Dézipper est en bas de la page.

Ma contribution :

Obtenez le

Version en ligne de commande de 7-Zip

URL actuel

http://www.7-zip.org/download.html

La syntaxe ?

Vous pouvez mettre les éléments suivants dans un fichier .bat

"C:\Program Files\7-Zip\7z.exe" a MySuperCoolZipFile.zip "C:\MyFiles\*.jpg" -pmypassword -r -w"C:\MyFiles\" -mem=AES256

J'ai montré quelques options.

-r est récursif. C'est généralement ce que vous voulez avec la fonctionnalité zip.

a est pour "archive". C'est le nom du fichier zip de sortie.

-p est pour un mot de passe (facultatif)

-w est un répertoire source. Cela permettra d'imbriquer vos fichiers correctement dans le fichier zip, sans informations supplémentaires sur les dossiers.

-mem est la force de cryptage.

Il en existe d'autres. Mais ceux qui précèdent vous permettront d'avancer.

REMARQUE : L'ajout d'un mot de passe rendra le fichier zip peu convivial lorsqu'il s'agira de le visualiser via l'Explorateur Windows. Le client peut avoir besoin de sa propre copie de 7-zip (ou winzip ou autre) pour visualiser le contenu du fichier.

EDIT::::::::::: : (juste des trucs supplémentaires).

Il existe une version "ligne de commande" qui est probablement mieux adaptée à cette tâche : http://www.7-zip.org/download.html

(lien direct actuel (au moment de la rédaction)) http://sourceforge.net/projects/sevenzip/files/7-Zip/9.20/7za920.zip/download

Ainsi, le commande zip serait (avec la version en ligne de commande de l'outil zip 7).

"C:\WhereIUnzippedCommandLineStuff\7za.exe" a MySuperCoolZipFile.zip "C:\MyFiles\*.jpg" -pmypassword -r -w"C:\MyFiles\" -mem=AES256

Maintenant, le partie dézippée : (pour décompresser le fichier que vous venez de créer)

"C:\WhereIUnzippedCommandLineStuff\7zipCommandLine\7za.exe" e MySuperCoolZipFile.zip "*.*" -oC:\SomeOtherFolder\MyUnzippedFolder -pmypassword -y -r

Documentation ici :

http://sevenzip.sourceforge.jp/chm/cmdline/commands/extract.htm

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X