¿Cómo se puede comprimir o descomprimir desde el script utilizando SOLO las capacidades incorporadas de Windows'?

En Windows puede comprimir algunos archivos mediante

clic derecho → Enviar a → *Carpeta comprimida (zip)

Y descomprimir haciendo doble clic en el archivo .zip y extraer los archivos.

¿Hay alguna forma de aplicar esas habilidades desde un script (archivo .bat) sin necesidad de instalar ningún software de terceros?

Solución

En 2013, eso no era posible. Microsoft no proporcionaba ningún ejecutable para ello.

Ver este enlace para algunos VBS manera 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 está instalado por defecto, con System.IO.Compression.ZipArchive y PowerShell disponible, uno puede escribir scripts para lograr esto, ver https://stackoverflow.com/a/26843122/71312

Comentarios (8)

He estado buscando la respuesta a esta misma pregunta y, según mis investigaciones, la respuesta de DiryBoy parece ser acertada.

Encontré que el programa compact.exe comprime archivos pero no para crear un archivo (o conjunto de archivos) altamente comprimido. Es similar a la opción que obtienes al hacer clic con el botón derecho en una letra de unidad o partición en Windows. Tienes la opción de hacer limpieza (eliminar archivos temporales, etc.) además de comprimir los archivos. Los archivos comprimidos siguen siendo accesibles, pero sólo se comprimen para crear espacio en una unidad que tiene poco espacio.

También encontré compress.exe, que casualmente tenía en mi ordenador. No es nativo en la mayoría de las máquinas de Windows y es parte del kit de recursos 2003. Hace una especie de archivo comprimido, pero en realidad es más similar a los archivos de un disco de instalación de Windows (tiene el guión bajo como el último carácter de la extensión o el nombre del archivo). Y el comando extract.exe extrae esos archivos.

Sin embargo, el mantra es, si se puede hacer de forma nativa a través de la interfaz gráfica de usuario, entonces es probable que haya una manera de hacerlo a través de lotes, .vbs, o algún otro tipo de script dentro de la línea de comandos. Desde que windows tiene la opción de 'enviar a' para crear un archivo zip, sabía que tenía que haber una manera de hacerlo a través de la línea de comandos y encontré algunas opciones.

Aquí hay un gran enlace que muestra cómo comprimir un archivo utilizando comandos nativos de Windows.

https://superuser.com/questions/110991/can-you-zip-a-file-from-the-command-prompt-using-only-windows-built-in-capabili

Lo probé con un directorio que contenía múltiples archivos y carpetas anidados y funcionó perfectamente. Sólo tienes que seguir el formato de la línea de comandos.

También hay una manera de descomprimir los archivos a través de la línea de comandos que encontré también. Una manera, sólo trae abrir una ventana del explorador que muestra lo que el contenido del archivo comprimido es. Algunos de estos también utilizan Java, que no es necesariamente nativo de Windows, pero es tan común que casi parece.

https://superuser.com/questions/149489/does-windows-7-have-unzip-at-the-command-line-installed-by-default

https://stackoverflow.com/questions/1021557/how-to-unzip-a-file-using-the-command-line

Comentarios (1)

Puede descomprimir un archivo comprimido o nativo de Windows utilizando el comando Expand, por ejemplo

expand MyFile.zip myFile
Comentarios (5)