¿Cómo se puede comprimir o descomprimir el script utilizando SÓLO las capacidades integradas de Windows?

Resuelto Roee Gavirel asked hace 11 años • 18 respuestas

En Windows puedes comprimir algunos archivos

clic derecho → Enviar aCarpeta comprimida (zipped)

Y descomprima haciendo doble clic en el .ziparchivo y extraiga los archivos.

¿Existe alguna manera de aplicar esas capacidades desde un script (archivo .bat) sin la necesidad de instalar ningún software de terceros ?

Roee Gavirel avatar Jul 09 '13 17:07 Roee Gavirel
Aceptado

Para ampliar la solución PowerShell de Steven Penny, puede incorporarla en un archivo por lotes llamando powershell.exeasí:

powershell.exe -nologo -noprofile -command "& { Add-Type -A 'System.IO.Compression.FileSystem'; [IO.Compression.ZipFile]::ExtractToDirectory('foo.zip', 'bar'); }"

Como dijo Ivan Shilo, esto no funcionará con PowerShell 2, requiere PowerShell 3 o superior y .NET Framework 4.

Jason Duffett avatar Nov 10 '2014 11:11 Jason Duffett

Si tiene Java instalado, puede comprimirlo en un archivo ZIP usando el jarcomando:

jar -cMf targetArchive.zip sourceDirectory

c = Crea un nuevo archivo de almacenamiento.

M = Especifica que no se debe agregar un archivo de manifiesto al archivo.

f = Indica el nombre del archivo de destino.

Noam Manos avatar Apr 26 '2015 14:04 Noam Manos

PowerShell 5.0

Desde Microsoft.PowerShell.Archivepuedes usar:

  • Compress-Archive
  • Expand-Archive

P.ej:

  • Crear result.zipdesde toda la Testcarpeta:

    Compress-Archive -Path C:\Test -DestinationPath C:\result
    
  • Extraiga el contenido de result.zipen la carpeta especificada Test:

    Expand-Archive -Path result.zip -DestinationPath C:\Test
    
ROMANIA_engineer avatar Oct 24 '2016 22:10 ROMANIA_engineer

En 2013, eso no era posible. Microsoft no proporcionó ningún ejecutable para esto.

Consulte este enlace para conocer alguna forma de VBS de hacer esto. https://superuser.com/questions/201371/create-zip-folder-from-the-command-line-windows

A partir de Windows 8, .NET Framework 4.5 se instala de forma predeterminada, con System.IO.Compression.ZipArchive y PowerShell disponibles, se pueden escribir scripts para lograr esto, consulte https://stackoverflow.com/a/26843122/71312

Paul Chen avatar Jul 09 '2013 10:07 Paul Chen

No es exactamente un ZIP, pero la única forma de comprimir un archivo usando las herramientas de Windows es:

makecab <source> <dest>.cab

Para descomprimir:

expand <source>.cab <dest>

Ejemplo avanzado (de ss64.com):

Create a self extracting archive containing movie.mov:
C:\> makecab movie.mov "temp.cab"
C:\> copy /b "%windir%\system32\extrac32.exe"+"temp.cab" "movie.exe"
C:\> del /q /f "temp.cab"

Más información: makecab , ampliar , usos avanzados de makecab

Federico Santamorena avatar May 29 '2015 01:05 Federico Santamorena