2012-03-01 26 views
5

Busco el comando PowerShell equivalente para:Una línea para comprimir carpeta en PowerShell?

tar -zcvf tar-archive-name.tar.gz source-folder 

¿Existe una sola línea de tal manera que crea un archivo zip desde una carpeta de forma recursiva añadiendo el contenido del source-folder, que no requiere de un tercio biblioteca de fiestas como 7-zip?

Respuesta

4

A partir de Powershell 5, puede utilizar el incorporado en Compress-Archive comando:

Compress-Archive -Path source-folder -DestinationPath archive-name.zip 

Si está utilizando PowerShell antes de la versión 5, no existe una solución un trazador de líneas sin un programa de terceros como 7-zip . Sin embargo, puede aprovechar las capacidades de compresión integradas del explorador de Windows expuestas a través del COM Shell object para construir su propia función de PowerShell para hacer esto. This page outlines the details sobre cómo hacerlo.

+0

¿Puede usted por favor mostrar el 7- zip sloution. Gracias –

+1

@ F505 ahora puede hacerlo en PS directamente, vea la respuesta actualizada. – zdan

+0

@ F505 Está intentando extraer de un archivo, no crearlo. No creo que las funciones incorporadas de archivo powershell sean compatibles con gzip. Intenta hacer una pregunta por separado. – zdan

4

En realidad, hay un equivalente de una línea que crea archivos comprimidos, e incluso hay una línea para crear una coincidencia exacta, es decir, un archivo tar. El primer lugar donde debe buscar una función de biblioteca de este tipo es PowerShell Community Extensions, que proporciona una gran cantidad de extensiones de biblioteca de alta calidad para PowerShell. Desafortunadamente, una búsqueda web para un elemento específico, como su función de creación de zip, probablemente no aparezca algo porque en ninguna parte del sitio o en la documentación incluye una lista de los cmdlets y funciones provistos. Para saber si tiene que instalar la biblioteca, haga help about_pscx. Tamizar a través de eso, esto es lo que se encuentra relacionada con la pregunta:

Write-Zip 
    Create ZIP format archive files from pipline or parameter input. 
Write-GZip 
    Create GNU ZIP (GZIP) format files from pipeline or parameter input. 
Write-Tar 
    Create Tape Archive (TAR) format files from pipeline or parameter input. 

Y aquí, de sus ejemplos incorporados, son cómo puede utilizarlos:

PS> dir c:\logs\ -rec -inc *.log | write-zip -level 9 -removeoriginal 
PS> dir c:\logs\ -rec -inc *.log | write-tar -output logs.tar | write-gzip -level 9 | move-item c:\archived_logs\ 
+1

Estas funciones actualmente están rotas en PSCX 2.1 y posteriores. Sin ETA en la solución. – Encryption

Cuestiones relacionadas