para descomprimir definicion con comprimir comprimido como bat archivos archivo abrir windows batch-file zip
https://msdn.microsoft.com/en-us/library/system.io.compression.zipfile(v=vs.110).aspxSystem.IO.Compression.ZipArchive

windows - con - comprimir y descomprimir archivos definicion



¿Cómo puede comprimir o descomprimir el script usando SOLO las capacidades integradas de Windows? (14)

En Windows puedes zip algunos archivos por

clic derecho -> enviar a -> carpeta comprimida (en zip)

Y unzip haciendo doble clic en el archivo .zip y extraiga los archivos.

¿Hay una manera de aplicar esas habilidades desde un script (archivo .bat) sin la necesidad de instalar un tercero ?


PowerShell 5.0

Desde Microsoft.PowerShell.Archive puedes usar:

P.ej:

  • Cree result.zip desde toda la carpeta de Test :

    Compress-Archive -Path C:/Test -DestinationPath C:/result

  • Extraiga el contenido de result.zip en la carpeta de Test especificada:

    Expand-Archive -Path result.zip -DestinationPath C:/Test




He estado buscando responder a esta pregunta exacta y de mi investigación, la respuesta de DiryBoy parece ser precisa.

Encontré que el programa compact.exe comprime archivos pero no crea un archivo altamente comprimido (o conjunto de archivos). Es similar a la opción que se obtiene 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.), así como también comprimir archivos. Los archivos comprimidos aún son accesibles, pero solo están comprimidos para crear espacio en una unidad con poco espacio.

También encontré compress.exe que tenía en mi computadora. No es nativo en la mayoría de las máquinas con Windows y es parte del kit de recursos de 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 subrayado como el último carácter de la extensión o 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 GUI, entonces es probable que haya una forma de hacerlo por lotes, .vbs o algún otro tipo de script dentro de la línea de comandos. Como Windows ha tenido la opción ''enviar a'' para crear un archivo zip, sabía que tenía que haber una forma 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 mediante 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 varios archivos y carpetas anidados y funcionó perfectamente. Simplemente siga el formato de la línea de comando.

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

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

¿Cómo descomprimir un archivo usando la línea de comando?


No es exactamente un archivo zip, pero la única forma de comprimir un archivo con 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 , expand , makecab usos avanzados


Para ampliar la solución PowerShell de Steven Penny, puede incorporarla a un archivo por lotes llamando a powershell.exe de esta manera:

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.


Para comprimir un archivo:

C:/> zip -9 -m -o file.dat.zip file.dat

  • -9 compresión máxima
  • -m eliminar el archivo original después de la compresión exitosa
  • -o establece la fecha de modificación del archivo zip igual que el archivo original
  • demasiado malo uno tiene que darle el nombre del archivo zip deseado en lugar de él simplemente agregando la extensión .zip al nombre del archivo para comprimir

PowerShell puede hacer esto

Add-Type -A System.IO.Compression.FileSystem [IO.Compression.ZipFile]::CreateFromDirectory(''foo'', ''foo.zip'') [IO.Compression.ZipFile]::ExtractToDirectory(''foo.zip'', ''bar'')


Puede descomprimir un archivo comprimido comprimido comprimido nativo o comprimido usando el comando Expand , por ejemplo,

expand MyFile.zip myFile


Puede usar un vbsscript envuelto en un archivo BAT ... este es mi código que funciona en un PATH relativo ...

No es necesario contar con herramientas o dependencias de terceros. Solo configure el origen y el destino.

nombre de archivo: zipping.bat

echo Set fso = CreateObject("Scripting.FileSystemObject") > _zipup.vbs echo InputFolder = fso.GetAbsolutePathName(WScript.Arguments.Item(0)) >> _zipup.vbs echo ZipFile = fso.GetAbsolutePathName(WScript.Arguments.Item(1)) >> _zipup.vbs ''Create empty ZIP file. echo CreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile, True).Write "PK" & Chr(5) & Chr(6) & String(18, vbNullChar) >> _zipup.vbs echo Set objShell = CreateObject("Shell.Application") >> _zipup.vbs echo Set source = objShell.NameSpace(InputFolder).Items >> _zipup.vbs echo objShell.NameSpace(ZipFile).CopyHere(source) >> _zipup.vbs echo ''Keep script waiting until compression is done echo Do Until objShell.NameSpace( ZipFile ).Items.Count = objShell.NameSpace( InputFolder ).Items.Count >> _zipup.vbs echo WScript.Sleep 200 >> _zipup.vbs echo Loop >> _zipup.vbs CScript _zipup.vbs %SOURCEDIR% %OUTPUTZIP% del _zipup.vbs


Si necesita hacer esto como parte de un script, la mejor manera es usar Java. Suponiendo que el directorio bin esté en su ruta (en la mayoría de los casos), puede usar la línea de comando:

jar xf test.zip

Si Java no está directamente en su referencia de pase:

C:/Java/jdk1.6.0_03/bin>jar xf test.zip


Si tiene instalado Java , puede comprimirlo a un archivo ZIP usando el comando jar :

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.



Utilizando 7-Zip:

Zip : tienes una carpeta foo , y quieres myzip.zip en myzip.zip

"C:/Program Files/7-Zip/7z.exe" a -r myzip.zip -w foo -mem=AES256

Descomprimir : desea descomprimirlo ( myzip.zip ) al directorio actual ( ./ )

"C:/Program Files/7-Zip/7z.exe" x myzip.zip -o./ -y -r