Comment décompresser un fichier en utilisant la ligne de commande? [fermé]
164
Quelles commandes peuvent être utilisées via la ligne de commande pour décompresser un fichier?
De préférence quelque chose intégré à Windows ou à des outils open source / gratuits.
Une recherche rapide sur Google a révélé cela . Cela fonctionne sous Windows (il n'est pas clair si vous voulez dire que vous utilisez Windows ou si le système d'exploitation est en fait DOS).
Jeremy
26
À moins que vous n'exécutiez une version vraiment ancienne de Windows (ME ou antérieure), la ligne de commande Windows n'est pas DOS. :)
Tyler McHenry
Le moyen le plus simple de décompresser un fichier consiste à utiliser unzip.exe. Exemple: unzip.exe source.zip -d rép_cible. URL: stahlworks.com/dev/index.php?tool=zipunzip
La première URL répertoriée est une véritable application 16 bits, ne fonctionne donc pas sur les systèmes d'exploitation x64. Juste un avertissement.
Mark Henderson
38
si vous êtes sous Windows 7 ou 10 avec PowerShell, vous pouvez utiliser:powershell.exe -NoP -NonI -Command "Expand-Archive '.\file.zip' '.\unziped\'"
AK_
@AK_ qu'en est-il de Windows 8 ou 8.1?
Frank Vu
2
@AK_ vous devriez en faire sa propre réponse.
BrainStone
221
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]
Un soupçon. Vous avez besoin du JDK, et pas seulement du JRE si vous souhaitez utiliser jar.
Qben
1
c'est bizarre, m jar résout partiellement le problème, car il est capable de lister les fichiers à l'intérieur de l'archive et d'extraire les fichiers spécifiés, cependant, il n'est pas possible d'extraire tous les fichiers en même temps ... assez bizarre
mikus
@mikus: pourquoi pas, il suffit d'utiliser la commande <code> jar.exe xvf Compressed.zip </code>
Xinus
1
java.io.FileNotFoundException: test.zip (Le système ne trouve pas le fichier spécifié)
markj
Existe-t-il un moyen de spécifier un dossier de destination? (comme lorsque vous choisissez l'option Extraire vers)?
Leonardo Alves Machado
41
Tout d'abord, écrivez un utilitaire de décompression à l'aide de vbscript pour déclencher la fonctionnalité de décompression native de Windows. Puis extrayez le script de votre fichier batch, puis appelez-le. Ensuite, c'est aussi bien que autonome. Je l'ai fait dans le passé pour de nombreuses tâches. De cette façon, il ne nécessite pas d'applications tierces, juste le seul fichier de commandes qui fait tout.
' 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"
Il est généralement considéré comme bon de mettre du code dans votre réponse, et généralement mauvais de créer un lien pour le code - juste un avertissement!
Rich Bradshaw
39
7-Zip , c'est open source, gratuit et prend en charge un large éventail de formats.
Vous pouvez mettre ce qui suit 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 (facultatif)
-w est le répertoire source. Cela imbriquera correctement vos fichiers 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 permettra de courir.
REMARQUE: l'ajout d'un mot de passe rendra le fichier zip peu convivial 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 winzip ou autre) pour afficher le contenu du fichier.
EDIT :::::::::::: (juste des trucs supplémentaires).
Merci Rich, je vais en prendre note. Voici donc le script de ma propre solution. Il ne nécessite aucun outil de décompression tiers.
Incluez le script ci-dessous au début du fichier batch 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 à ajouter en haut ...
REM Changement du dossier de travail vers le répertoire actuel pour la compatibilité Vista & 7
% ~ d0
CD% ~ dp0
Dossier REM modifié
REM Fichiers de ce script upzip ...
> j_unzip.vbs ECHO '
>> j_unzip.vbs ECHO 'Décompressez un fichier script
>> j_unzip.vbs ECHO '
>> j_unzip.vbs ECHO 'C'est un bordel, 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 Si (Wscript.Arguments.Count ^> 0) Alors
>> j_unzip.vbs ECHO. var1 = ArgObj (0)
>> j_unzip.vbs ECHO Else
>> j_unzip.vbs ECHO. var1 = ""
>> j_unzip.vbs ECHO Fin si
>> j_unzip.vbs ECHO.
>> j_unzip.vbs ECHO Si var1 = "" alors
>> j_unzip.vbs ECHO. strFileZIP = "exemple.zip"
>> j_unzip.vbs ECHO Else
>> j_unzip.vbs ECHO. strFileZIP = var1
>> j_unzip.vbs ECHO Fin si
>> j_unzip.vbs ECHO.
>> j_unzip.vbs ECHO 'L'emplacement du fichier zip.
>> j_unzip.vbs ECHO REM Set WshShell = CreateObject ("Wscript.Shell")
>> j_unzip.vbs ECHO REM CurDir = WshShell.ExpandEnvironmentStrings ("%% 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 ("Extraction du 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 Définir 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.
belle :) J'utilise ceci pour télécharger la ligne de commande 7zip (dont l'exécutable est zippé (c'est étrange))
Sebastian
Cela fonctionne comme prévu, maintenant je peux compresser n'importe quel dossier et créer un exe en utilisant iexpress et décompresser en utilisant ceci. Cela fonctionne-t-il également dans Windows 10.
Kiran Kumar
9
Il y a un article sur l'accès à la gestion des fichiers Windows .ZIP intégrée avec VBscript ici:
Ce n'est pas facile mais cela semble être une très bonne solution en utilisant uniquement la fonctionnalité de dossier zip native de Windows. Je cherche quelque chose de ça depuis un moment. Merci!
Andre Steenveld
5
À l'origine, les fichiers ZIP ont été créés avec le logiciel de ligne de commande MS-DOS de PKWare, les deux programmes étaient PKZIP.EXE et PKUNZIP.EXE. Je pense que vous pouvez toujours télécharger PKUNZIP sur le site PKWare ici:
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. (alias Win32), Windows 3.x, Windows CE, MS-DOS, AmigaDOS, Atari TOS, Acorn RISC OS, BeOS, Mac OS, SMS / QDOS, MVS et OS / 390 OE, VM / CMS, FlexOS, Tandem NSK et Human68K (japonais). Il existe également un (ancien) support pour LynxOS, TOPS-20, AOS / VS et Novell NLM. Des 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 batch et exécutez. Ci-dessous, Winzip doit être installé / accessible à partir de votre machine. Modifiez 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
Exand-Archive
etCompress-Archive
. Honneur là où l'honneur est dû.Réponses:
Vous pouvez utiliser:
http://membrane.com/synapse/library/pkunzip.html
ou
7zip: http://www.7-zip.org/download.html
Zip d' octet gratuit : http://www.freebyte.com/fbzip/
ou infozip: http://infozip.sourceforge.net/
la source
powershell.exe -NoP -NonI -Command "Expand-Archive '.\file.zip' '.\unziped\'"
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:
ou sinon sur votre chemin:
Ensemble complet d'options pour l'outil Jar disponible ici .
Exemples:
la source
Tout d'abord, écrivez un utilitaire de décompression à l'aide de vbscript pour déclencher la fonctionnalité de décompression native de Windows. Puis extrayez le script de votre fichier batch, puis appelez-le. Ensuite, c'est aussi bien que autonome. Je l'ai fait dans le passé pour de nombreuses tâches. De cette façon, il ne nécessite pas d'applications tierces, juste le seul fichier de commandes qui fait tout.
J'ai mis un exemple sur mon blog sur la façon de décompresser un fichier à l'aide d'un fichier batch :
Utilisez-le comme ceci:
la source
7-Zip , c'est open source, gratuit et prend en charge un large éventail de formats.
la source
Comme d'autres l'ont fait allusion, 7-zip est génial.
Remarque: je vais compresser puis décompresser un fichier. La décompression est en bas.
Ma contribution:
Obtenir le
Version de ligne de commande 7-Zip
URL actuelle
http://www.7-zip.org/download.html
La syntaxe?
Vous pouvez mettre ce qui suit dans un fichier .bat
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 (facultatif)
-w est le répertoire source. Cela imbriquera correctement vos fichiers 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 permettra de courir.
REMARQUE: l'ajout d'un mot de passe rendra le fichier zip peu convivial 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 winzip ou autre) pour afficher le contenu du fichier.
EDIT :::::::::::: (juste des trucs supplémentaires).
Il existe une version "ligne de commande" qui est probablement mieux adaptée pour cela: 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
La commande zip serait donc (avec la version en ligne de commande de l'outil 7 zip).
Maintenant, la partie décompresser : (pour décompresser le fichier que vous venez de créer)
Comme alternative à l'argument "e", il existe un argument ax.
Documentation ici:
http://sevenzip.sourceforge.jp/chm/cmdline/commands/extract.htm
la source
Merci Rich, je vais en prendre note. Voici donc le script de ma propre solution. Il ne nécessite aucun outil de décompression tiers.
Incluez le script ci-dessous au début du fichier batch 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 à ajouter en haut ...
la source
Il y a un article sur l'accès à la gestion des fichiers Windows .ZIP intégrée avec VBscript ici:
https://www.aspfree.com/c/a/Windows-Scripting/Compressed-Folders-in-WSH/
(Le dernier texte de présentation du code traite de l'extraction)
la source
À l'origine, les fichiers ZIP ont été créés avec le logiciel de ligne de commande MS-DOS de PKWare, les deux programmes étaient PKZIP.EXE et PKUNZIP.EXE. Je pense que vous pouvez toujours télécharger PKUNZIP sur le site PKWare ici:
http://www.pkware.com/software-pkzip/dos-compression
La ligne de commande réelle pourrait ressembler à ceci:
la source
Récupérez un exécutable dans info-zip .
la source
Copiez le code ci-dessous dans un fichier batch et exécutez. Ci-dessous, Winzip doit être installé / accessible à partir de votre machine. Modifiez les variables selon vos besoins.
la source