![¿Cómo descomprimir un archivo usando el cmd?](https://rvso.com/image/1558697/%C2%BFC%C3%B3mo%20descomprimir%20un%20archivo%20usando%20el%20cmd%3F.png)
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.