80 votes

Comment décompresser un fichier à l'aide de cmd ?

Je veux créer un fichier BAT qui zippera ou dézippera un fichier. Pour zipper un fichier, j'ai trouvé cette question : Pouvez-vous zipper un fichier à partir de l'invite de commande en utilisant UNIQUEMENT la capacité intégrée de Windows à zipper des fichiers ?

Les réponses qui y sont données sont excellentes et fonctionnent pour moi, mais je n'ai trouvé aucune information sur la manière de décompresser les fichiers. Comme dans le lien, je ne peux pas supposer qu'il existe des outils tiers (à l'exception de winRAR).

Merci d'avance et désolé pour les fautes d'anglais

127voto

venimus Points 1270

Sur Windows 10 build 17063 ou plus récent, vous pouvez utiliser tar.exe (similaire à celui de *nix). Ceci est également disponible dans le conteneur docker nanoserver

C:\> tar -xf archive.zip

50voto

Doin Points 540

Si vous avez Windows 10, vous pouvez utiliser l'équivalent Powershell beaucoup plus court

Expand-Archive -Force C:\path\to\archive.zip C:\where\to\extract\to

18voto

Rajesh Sinha Points 8611

Ce code de fichier batch vous aidera à décompresser un fichier.

@echo off
setlocal
cd /d %~dp0
Call :UnZipFile "C:\Temp\" "c:\FolderName\batch.zip"
exit /b

:UnZipFile <ExtractTo> <newzipfile>
set vbs="%temp%\_.vbs"
if exist %vbs% del /f /q %vbs%
>%vbs%  echo Set fso = CreateObject("Scripting.FileSystemObject")
>>%vbs% echo If NOT fso.FolderExists(%1) Then
>>%vbs% echo fso.CreateFolder(%1)
>>%vbs% echo End If
>>%vbs% echo set objShell = CreateObject("Shell.Application")
>>%vbs% echo set FilesInZip=objShell.NameSpace(%2).items
>>%vbs% echo objShell.NameSpace(%1).CopyHere(FilesInZip)
>>%vbs% echo Set fso = Nothing
>>%vbs% echo Set objShell = Nothing
cscript //nologo %vbs%
if exist %vbs% del /f /q %vbs%

N.B. C:\Temp est le dossier dans lequel est stocké le fichier extrait (UnZip).

Et, c : \FolderName\batch.zip est le chemin d'accès à la source (où les fichiers Zip sont stockés).

Veuillez modifier le chemin complet du fichier (lecteur, dossier et nom du fichier Zip) en fonction de vos besoins.

12voto

np8 Points 1140

Si vous avez Windows 10 (et powershell), mais que vous voulez quand même décompresser à partir de l'application .bat / .cmd -(cmd.exe), vous pouvez utiliser le fichier

powershell -command "Expand-Archive -Force '%~dp0my_zip_file.zip' '%~dp0'"

my_zip_file.zip est le fichier à décompresser et %~dp0 pointent vers le même dossier, c'est là que se trouve le .bat / .cmd -Le fichier est (Changez le dossier, si nécessaire).

2voto

spoorthi vaidya Points 121
ZipFile="C:\Users\spvaidya\Music\folder.zip"
ExtractTo="C:\Users\spvaidya\Music\"

'If the extraction location does not exist create it.

Set fso = CreateObject("Scripting.FileSystemObject")

If NOT fso.FolderExists(ExtractTo) Then

 fso.CreateFolder(ExtractTo)

End If

'Extract the contants of the zip file.

set objShell = CreateObject("Shell.Application")

set FilesInZip=objShell.NameSpace(ZipFile).items

objShell.NameSpace(ExtractTo).CopyHere(FilesInZip)

Set fso = Nothing
Set objShell = Nothing

Le vbscript suivant peut être enregistré en tant que fichier.vbs et exécuté à l'aide de la commande batch script comme :

file.vbs

enregistrer ce fichier dans un fichier .bat et l'exécuter.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X