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:\ExtractedFolderATenga en cuenta que el cmdlet
Expand-Archiveestá 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 -ForcePodemos 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.Filesystemen el script. - Utilice el espacio de nombres
System.IO.Compression.ZipFilepara 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 NamePRODUCCIÓN :
Name
----
File1.txt
File2.txtUsando 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:\ExtractedBEs 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