¿Cómo descomprimir un archivo usando el cmd?

¿Cómo descomprimir un archivo usando el cmd?

Quiero crear un archivo BAT que comprima o descomprima un archivo. Para comprimir un archivo, encontré esta pregunta: ¿Puede comprimir un archivo desde el símbolo del sistema usando SÓLO la capacidad incorporada de Windows para comprimir archivos?

Las respuestas dadas allí son excelentes y funcionan para mí, pero no pude encontrar ninguna información sobre cómo descomprimir los archivos. Como en el enlace, no puedo asumir ninguna herramienta de terceros (excepto winRAR).

Gracias de antemano y perdón por los errores en inglés.

Respuesta1

Este código de archivo por lotes le ayudará a descomprimir un archivo.

@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ÓTESE BIENC:\Temp es la carpeta donde almacena el archivo extraído (descomprimido).

Y c:\FolderName\batch.zip es la ruta de origen (donde se almacenan los archivos Zip).

Cambie la ruta completa del archivo (unidad, carpeta y nombre del archivo zip), según sus necesidades.

Respuesta2

En Windows 10 build 17063 o posterior puedes usar tar.exe(similar al *nix). Esto también está disponible en el contenedor acoplable del nanoservidor.

C:\> tar -xf archive.zip

Nota: la compatibilidad con zip no está bien documentada

árbitro:https://www.freebsd.org/cgi/man.cgi?query=bsdtar&sektion=1&manpath=FreeBSD+5.3-stable

Respuesta3

Si tiene Windows 10, puede usar el equivalente de Powershell, mucho más corto

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

Respuesta4

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

El siguiente vbscript se puede guardar como archivo.vbs y luego ejecutarlo usando un script por lotes como:

file.vbs

guarde esto en un archivo .bat y ejecútelo.

información relacionada