Búsqueda de sitios web

PowerShell: descomprimir archivo [3 formas]


Usando el cmdlet Expand-Archive

Utilice el cmdlet Expand-Achrive para descomprimir un archivo/carpeta en PowerShell.

Utilice el cmdlet Expand-Ahrive:

Expand-Archive -Path E:\Test\FolderA.zip -DestinationPath E:\ExtractedFolderA

Tenga en cuenta que el cmdlet Expand-Archive está disponible desde PowerShell 5 en adelante. Imprima la variable de entorno $PSVersionTable.PSVersion para verificar la versión de su PowerShell.

Usamos el cmdlet Expand-Achrive para descomprimir una carpeta de la ubicación indicada y guardar la carpeta descomprimida en el destino especificado. Tenga en cuenta que este cmdlet creará una carpeta ExtractedFolderA si no existe en el destino indicado.

Un archivo comprimido permite empaquetar y comprimir muchos archivos (opcionalmente) en un archivo comprimido para un almacenamiento y distribución más accesibles.

¿Qué pasa si ya hemos descomprimido el archivo en el destino especificado pero queremos descomprimirlo nuevamente por algún motivo? Aquí es donde podemos usar el parámetro -Force, que se usa para sobrescribir los archivos/carpetas en la ruta de destino si los mismos archivos/carpetas ya existen.

Tenga en cuenta que el parámetro -Force se sobrescribe sin la confirmación del usuario, así que tenga cuidado al usarlo, como se indica a continuación.

Utilice el cmdlet Expand-Ahrive con el parámetro -Force:

Expand-Archive -Path E:\Test\FolderA.zip -DestinationPath E:\ExtractedFolderA -Force

Podemos usar el siguiente comando para guardar los datos extraídos en el directorio actual, que se representa con un punto (.).

Utilice el cmdlet Expand-Ahrive para extraer en el directorio local:

Expand-Archive -Path E:\Test\FolderA.zip -DestinationPath .

Recuerde, podemos usar el nombre del parámetro -LiteralPath en lugar de -Path si tenemos caracteres comodín en el nombre del archivo; vea el siguiente ejemplo.

Utilice el cmdlet Expand-Ahrive para extraer en el directorio local:

Expand-Archive -LiteralPath E:\Test\FolderA[v1].zip -DestinationPath .

Usando el espacio de nombres System.IO.Compression.ZipFile

Para descomprimir un archivo/carpeta en PowerShell:

  • Agregue una referencia al ensamblado System.IO.Compression.Filesystem en el script.
  • Utilice el espacio de nombres System.IO.Compression.ZipFile para descomprimir archivos/carpetas en la ruta de destino.

Utilice el espacio de nombres System.IO.Compression.ZipFile:

Add-Type -Assembly "System.IO.Compression.Filesystem"
[System.IO.Compression.ZipFile]::ExtractToDirectory("E:\Test\FolderA.zip",".")

En el código anterior, agregamos el ensamblado usando Add-Type; es obligatorio si la clase ZipFile no está disponible en PowerShell. A continuación, utilizamos la clase ZipFile del espacio de nombres .Net System.IO.Compression para descomprimir archivos/carpetas o extraer datos del archivo comprimido especificado.

La clase ZipFile se introduce en .Net Framework 4.5 para administrar archivos comprimidos; proporciona métodos estáticos para crear, extraer y abrir archivos. Aquí, utilizamos el método ExtractToDirectory() para extraer un archivo comprimido desde la ruta de origen a la de destino.

Para leer los archivos archivados, utilice OpenRead(). También podemos usar el cmdlet Select-Object para enumerar todos los elementos extraídos. Vea el siguiente ejemplo.

Utilice el espacio de nombres System.IO.Compression.ZipFile:

$entries = [System.IO.Compression.ZipFile]::OpenRead("E:\Test\FolderB.zip") 
$entries.Entries | Select-Object -Property Name

PRODUCCIÓN :

Name
----
File1.txt
File2.txt

Usando el módulo 7Zip

Utilice el módulo 7Zip para descomprimir archivos/carpetas en PowerShell.

Utilice el módulo 7Zip:

Expand-7Zip -ArchiveFileName E:\Test\FolderB.zip -TargetPath E:\ExtractedB

Es similar al Expand-Achrive que aprendimos al principio del artículo. Aquí, usamos el nombre del parámetro -ArchiveFileName para especificar el origen del archivo comprimido, mientras que -TargetPath se usa para escribir la ruta de destino donde queremos guardar los elementos extraídos.

Si recibe algún mensaje que dice que el módulo 7Zip no se reconoce o no se encuentra, entonces debe usar el siguiente comando para instalar el módulo 7Zip primero y luego ejecutar el comando. dado arriba para descomprimir.

Instale el módulo 7Zip:

Install-Module 7Zip4PowerShell -Scope CurrentUser -Force -Verbose 

Artículos relacionados