Saltar al contenido

Comprimir y descomprimir archivos en Powershell 4

Por fin después de mucho batallar ya hallamos la solución de esta cuestión que muchos lectores de este sitio web han tenido. Si quieres compartir algún detalle no dejes de aportar tu conocimiento.

Write-Zip parece ser parte de http://pscx.codeplex.com/ que requiere una instalación separada antes de poder usarlo.

Sin embargo, si solo desea crear un archivo Zip desde una carpeta, puede ejecutar

$source = "c:tempsource"
$archive = "c:temparchive.zip"

Add-Type -assembly "system.io.compression.filesystem"
[io.compression.zipfile]::CreateFromDirectory($source, $archive)

Esto utiliza el CreateFromDirectory método de la clase .NET Framework ZipFile. Crea un archivo zip a partir de los archivos ubicados dentro del $source carpeta y crea un archivo como se define en el $archive variable. Tenga en cuenta que la clase ZipFile se introdujo en .NET Framework 4.5

Puede usar un objeto PowerShell personalizado New-Object -ComObject Shell.Application y copie el archivo con banderas para descomprimir.

$filePath = "foo.zip"
$shell = New-Object -ComObject Shell.Application
$zipFile = $shell.NameSpace($filePath)
$destinationFolder = $shell.NameSpace("C:Program FilesWindowsPowerShellModules")

$copyFlags = 0x00
$copyFlags += 0x04 # Hide progress dialogs
$copyFlags += 0x10 # Overwrite existing files

$destinationFolder.CopyHere($zipFile.Items(), $copyFlags)

Fuente de crédito https://github.com/hashicorp/best-practices/blob/master/packer/scripts/windows/install_windows_updates.ps1#L12-L22

Esto no funciona con la edición ‘core’ de Windows. Si es posible, actualice a powershell 5 y use Expand Archive ya que es mucho más sencillo.

Sección de Reseñas y Valoraciones

Recuerda algo, que te permitimos aclarar si te fue de ayuda.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *