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

Puis-je décompresser des fichiers via la ligne de commande? Utiliser de préférence des outils open source / gratuits.

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

 jar xf test.zip 

ou sinon sur votre chemin:

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

Ensemble complet d’options pour l’outil jar disponible ici .

Exemples:

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

Tout d’abord, écrivez un utilitaire de décompression en utilisant vbscript pour déclencher la fonctionnalité de décompression native dans Windows. Ensuite, extrayez le script de votre fichier de commandes, puis appelez-le. Alors c’est aussi bien que d’être autonome. Je l’ai fait par le passé pour de nombreuses tâches. De cette façon, il n’a pas besoin d’applications tierces, mais d’un fichier batch unique qui fait tout.

Je mets un exemple sur mon blog sur la façon de décompresser un fichier en utilisant un fichier de commandes :

 ' 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.ExpandEnvironmentSsortingngs("%%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 ceci:

 cscript //B j_unzip.vbs zip_file_name_goes_here.zip 

7-Zip , c’est open source, gratuit et supporte un large éventail de formats.

 7z.exe x myarchive.zip 

Comme d’autres l’ont mentionné, 7-zip est génial.

Note: Je vais compresser puis décompresser un fichier. Unzip est en bas.

Ma consortingbution:

Obtenir le

Version de ligne de commande 7-Zip

URL actuelle

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. 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 (optionnel)

-w est le répertoire source. Cela va imbriquer vos fichiers correctement dans le fichier zip, sans informations de dossier supplémentaires.

-mem est la force de cryptage.

Il y en a d’autres Mais ce qui précède vous fera courir.

REMARQUE: L’ajout d’un mot de passe rend le fichier zip inamical lorsqu’il s’agit de visualiser le fichier via l’Explorateur Windows. Le client peut avoir besoin de sa propre copie de 7-zip (ou de winzip ou autre) pour voir le contenu du fichier.

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

Il y a une version “en ligne de commande” qui est probablement mieux adaptée à cela: http://www.7-zip.org/download.html

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

Donc, la 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, la partie décompresser : (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

Merci Rich, je vais en prendre note. Donc, voici le script pour ma propre solution. Il ne nécessite aucun outil de décompression tiers.

Incluez le script ci-dessous au début du fichier de commandes pour créer la fonction, puis pour appeler la fonction, la commande est … cscript /B j_unzip.vbs zip_file_name_goes_here.zip

Voici le script à append au top …

 REM Changement du dossier de travail Retour au répertoire actuel pour la compatibilité avec Vista & 7
 % ~ d0
 CD% ~ dp0
 Le dossier REM a changé

 REM Ce script les fichiers upzip ...

     > j_unzip.vbs ECHO '
     >> j_unzip.vbs ECHO 'Décompressez un script de fichier
     >> j_unzip.vbs ECHO '
     >> j_unzip.vbs ECHO 'C'est un gâchis, je sais !!!
     >> j_unzip.vbs ECHO '
     >> j_unzip.vbs ECHO.
     >> j_unzip.vbs ECHO 'Dim ArgObj, var1, var2
     >> j_unzip.vbs ECHO Set ArgObj = WScript.Arguments
     >> j_unzip.vbs ECHO.
     >> j_unzip.vbs ECHO If (Wscript.Arguments.Count ^> 0) Puis
     >> j_unzip.vbs ECHO.  var1 = ArgObj (0)
     >> j_unzip.vbs ECHO Else
     >> j_unzip.vbs ECHO.  var1 = ""
     >> j_unzip.vbs ECHO End if
     >> j_unzip.vbs ECHO.
     >> j_unzip.vbs ECHO Si var1 = "" alors
     >> j_unzip.vbs ECHO.  strFileZIP = "example.zip"
     >> j_unzip.vbs ECHO Else
     >> j_unzip.vbs ECHO.  strFileZIP = var1
     >> j_unzip.vbs ECHO End if
     >> j_unzip.vbs ECHO.
     >> j_unzip.vbs ECHO 'Emplacement du fichier zip.
     >> j_unzip.vbs ECHO REM Set WshShell = CreateObject ("Wscript.Shell")
     >> j_unzip.vbs ECHO REM CurDir = WshShell.ExpandEnvironmentSsortingngs ("%% cd %%")
     >> j_unzip.vbs ECHO Dim sCurPath
     >> j_unzip.vbs ECHO sCurPath = CreateObject ("Scripting.FileSystemObject"). GetAbsolutePathName (".")
     >> j_unzip.vbs ECHO strZipFile = sCurPath ^ & "\" ^ & strFileZIP
     >> j_unzip.vbs ECHO 'Le dossier dans lequel le contenu doit être extrait.
     >> j_unzip.vbs ECHO outFolder = sCurPath ^ & "\"
     >> j_unzip.vbs ECHO.
     >> j_unzip.vbs ECHO.  WScript.Echo ("Extraire le fichier" ^ & strFileZIP)
     >> j_unzip.vbs ECHO.
     >> j_unzip.vbs ECHO Set objShell = CreateObject ("Shell.Application")
     >> j_unzip.vbs ECHO Set objSource = objShell.NameSpace (strZipFile) .Items ()
     >> j_unzip.vbs ECHO Set objTarget = objShell.NameSpace (outFolder)
     >> j_unzip.vbs ECHO intOptions = 256
     >> j_unzip.vbs ECHO objTarget.CopyHere objSource, intOptions
     >> j_unzip.vbs ECHO.
     >> j_unzip.vbs ECHO.  WScript.Echo ("Extrait")
     >> j_unzip.vbs ECHO.

Il existe un article sur l’access au fichier Windows .ZIP intégré avec VBscript ici:

https://www.aspfree.com/c/a/Windows-Scripting/Compressed-Folders-in-WSH/

(Le dernier code descriptif traite de l’extraction)

Prenez un exécutable à partir de info-zip .

Info-ZIP prend en charge le matériel des micro-ordinateurs jusqu’aux supercalculateurs Cray, fonctionnant sur presque toutes les versions d’Unix, VMS, OS / 2, Windows 9x / NT / etc. (aka Win32), Windows 3.x, Windows CE, MS-DOS, AmigaDOS, Atari TOS, OS Acorn RISC, BeOS, Mac OS, SMS / QDOS, MVS et OS / 390 OE, VM / CMS, FlexOS, NSK Tandem et Human68K (japonais). Il existe également un (ancien) support pour les NLM LynxOS, TOPS-20, AOS / VS et Novell. Les bibliothèques partagées (DLL) sont disponibles pour Unix, OS / 2, Win32 et Win16, et des interfaces graphiques sont disponibles pour Win32, Win16, WinCE et Mac OS.

Copiez le code ci-dessous dans un fichier de commandes et exécutez-le. Winzip doit être installé / accessible depuis votre machine. Changez les variables selon vos besoins.

 @ECHO OFF SET winzip_path="C:\Program Files\WinZip" SET source_path="C:\Test" SET output_path="C:\Output\" SET log_file="C:\Test\unzip_log.txt" SET file_name="*.zip" cd %source_path% echo Executing for %source_path% > %log_file% FOR /f "tokens=*" %%G IN ('dir %file_name% /b') DO ( echo Processing : %%G echo File_Name : %%G >> %log_file% %winzip_path%\WINZIP32.EXE -e %%G %output_path% ) PAUSE 

À l’origine, les fichiers ZIP étaient créés avec le logiciel de ligne de commande MS-DOS de PKWare, les deux programmes étant PKZIP.EXE et PKUNZIP.EXE. Je pense que vous pouvez toujours télécharger PKUNZIP sur le site de PKWare ici:

http://www.pkware.com/software-pkzip/dos-compression

La ligne de commande actuelle pourrait ressembler à ceci:

 C:\>pkunzip c:\myzipfile.zip c:\extracttothisfolder\