Usando PowerShell para crear archivos ZIP y descomprimir archivos
Nov 6, 2018
A veces puede ser útil crear archivos zip de manera programática o extraer archivos de archivos existentes. Windows PowerShell 5.0 agregó dos cmdlets para hacer precisamente eso. El cmdlet Compress-Archive te permite crear nuevos archivos a partir de carpetas o archivos individuales y agregar archivos a los archivos; el cmdlet Extract-Archive se puede utilizar para descomprimir archivos.
Contenido relacionado seleccionado:
Si aún no tiene instalado PowerShell 5.0 o una versión posterior en sus sistemas, puede descargar la última versión del Windows Management Framework desde el sitio web de Microsoft.
Usando PowerShell para Crear Archivos Zip
Comencemos utilizando PowerShell para comprimir archivos en un nuevo archivo zip. Todo lo que necesitas hacer es usar el parámetro -Path para especificar la carpeta que deseas comprimir y el parámetro –DestinationPath para especificar el nombre del archivo que quieres crear. El siguiente comando comprimirá la carpeta Invoices en el directorio raíz C y creará un archivo llamado Invoices.zip en la carpeta Archives:
Compress-Archive -Path C:Invoices -DestinationPath C:ArchivesInvoices
Alternativamente, podríamos comprimir los archivos en la carpeta de Facturas individualmente usando -LiteralPath en lugar de –Path. Este comando crea un archivo con solo los dos archivos explícitamente listados en el parámetro –LiteralPath:
Compress-Archive -LiteralPath C: InvoicesFile1.txt, C:InvoicesFile2.txt -DestinationPath C:ArchivesInvoices -Force
Tenga en cuenta que agregué el parámetro -Force para sobrescribir el archivo que creé usando el primer comando. Sin el parámetro -Force no puede sobrescribir archivos existentes y PowerShell le pedirá que agregue archivos al archivo en su lugar.
Para agregar archivos a un archivo, use el parámetro -Update. El comando a continuación agrega todos los archivos en la carpeta Invoices a mi archivo existente Invoices.zip:
Compress-Archive -Path C:Invoices* -Update -DestinationPath C:ArchivesInvoices
Opcionalmente, puedes usar el parámetro -CompressionLevel con uno de tres valores: Optimal, NoCompression o Fastest. Optimal es la configuración predeterminada si no se establece el parámetro -CompressionLevel; utiliza la mejor compresión disponible, pero puede tardar más que usar Fastest. Para crear un archivo sin compresión, usa el valor NoCompression.
Contenido relacionado seleccionado:
Usando PowerShell para descomprimir archivos
Extraer archivos de un archivo es incluso más fácil que crear uno. Todo lo que necesita hacer es especificar el nombre del archivo y la carpeta de destino para los archivos descomprimidos. El comando a continuación extrae el contenido del archivo Invoices.zip a una carpeta llamada InvoicesUnzipped usando el cmdlet Expand-Archive.
Expand-Archive -LiteralPath C:ArchivesInvoices.Zip -DestinationPath C: InvoicesUnzipped
La carpeta donde deseas descomprimir los archivos no necesita existir; Expand-Archive creará automáticamente la carpeta si es necesario. Pero si los archivos que deseas descomprimir ya existen en la carpeta de destino, Expand-Archive devolverá un error. Puedes sobrescribir archivos en la carpeta de destino agregando el parámetro -Force al comando.
Compartir en
Aprende más
Acerca del autor
Russell Smith
Consultor de TI
Consultor de TI y autor especializado en tecnologías de gestión y seguridad. Russell tiene más de 15 años de experiencia en TI, ha escrito un libro sobre seguridad en Windows y ha coescrito un texto para la serie de Cursos Académicos Oficiales de Microsoft (MOAC).