105 votos

¿Cómo zip/descomprimir archivos en Powershell?

¿Hay una frase que será zip/descomprimir archivos (* .zip) en PowerShell?

155voto

Ameer Deen Puntos 2903

Esto es cómo puedes hacerlo puramente de Powershell sin necesidad de herramientas externas. Esto descomprime un archivo llamado test.zip en el directorio de trabajo actual:

$shell_app=new-object -com shell.application
$filename = "test.zip"
$zip_file = $shell_app.namespace((Get-Location).Path + "\$filename")
$destination = $shell_app.namespace((Get-Location).Path)
$destination.Copyhere($zip_file.items())

56voto

mousio Puntos 576

Ahora en .NET Framework 4.5, hay una clase de archivo zip que puede utilizar como este:

[System.Reflection.Assembly]::LoadWithPartialName('System.IO.Compression.FileSystem')
[System.IO.Compression.ZipFile]::ExtractToDirectory($sourceFile, $targetFolder)

21voto

Jeremy Puntos 1287

DotNetZip le permitirá hacer esto desde PowerShell. No es un one-liner, pero la biblioteca le permitirá escribir el script de PowerShell que usted necesita.

También puede utilizar la interfaz COM, ver Comprimir Archivos con Windows PowerShell, a continuación, el paquete de Windows Vista Sidebar Gadget.

Buscar en google "zip powershell" o "descomprimir powershell" también podría entregar resultados útiles.

18voto

Kevin Colby Puntos 1444

Desee revisar El PowerShell comunidad extensiones (PSCX) que tiene los cmdlets específicamente para esto.

5voto

pjz Puntos 11925

Encontrar la solución más simple para usar infozip binarios que han utilizado durante años y utilizar en un entorno UNIX.

PS> zip -9r ../test.zip * 
PS> cd .. 
PS> unzip -t test.zip Archive:  test.zip
    testing: LinqRepository/          OK
    testing: LinqRepository/ApplicationService.cs   OK
    testing: LinqRepository/bin/      OK 
... 
No errors detected in compressed data of test.zip.

Sería straighforward a poner un contenedor de powershell alrededor de la salida de texto pero en la práctica nunca necesito así no me he molestado.

http://www.info-zip.org/

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: