
El formato de archivo ZIP reduce el tamaño de los archivos comprimiéndolos en un solo archivo. Este proceso ahorra espacio en el disco, cifra los datos y facilita compartir archivos con otras personas. Aquí se explica cómo comprimir y descomprimir archivos con PowerShell.
Cómo comprimir archivos con PowerShell
Comencemos comprimiendo algunos archivos en un archivo ZIP usando el cmdlet Compress-Archive. Toma la ruta a cualquier archivo que desee comprimir (varios archivos se separan con una coma) y los archiva en el destino que especifique.
Primero, abra PowerShell buscándolo en el menú Inicio y luego escribiendo el siguiente comando, reemplazando <PathToFiles>y <PathToDestination>con la ruta a los archivos que desea comprimir y el nombre y la carpeta a la que desea ir, respectivamente:
Comprimir-Archivo -LiteralPath <PathToFiles> -DestinationPath <PathToDestination>

Cuando proporcione la ruta de destino, asegúrese de darle un nombre al archivo de almacenamiento o PowerShell lo guardará como «.zip» donde usted especifique.
Nota: Las citas alrededor de la ruta solo son necesarias cuando la ruta del archivo contiene un espacio.
Alternativamente, para comprimir todo el contenido de una carpeta, y todas sus subcarpetas, puede usar el siguiente comando, reemplazando <PathToFolder> y <PathToDestination>con la ruta de los archivos que desea comprimir y el nombre y la carpeta a la que desea ir, respectivamente:
Comprimir-Archivo -LiteralPath <PathToFolder> -DestinationPath <PathToDestination>

En el ejemplo anterior, colocamos la ruta a un directorio con varios archivos y carpetas sin especificar archivos individuales. PowerShell toma todo dentro del directorio raíz y lo comprime, subcarpetas y todo.
El cmdlet Compress-Archive le permite usar un carácter comodín (*) para expandir la funcionalidad aún más. Cuando usa el carácter, puede excluir el directorio raíz, comprimir solo archivos en un directorio o elegir todos los archivos de un tipo específico. Para usar un comodín con Compress-Archive, debe usar el -Pathparámetro en su lugar, ya que -LiteralPath no los acepta.
Arriba, cubrimos cómo incluir el directorio raíz y todos sus archivos y subdirectorios al crear un archivo de almacenamiento. Sin embargo, si desea excluir la carpeta raíz del archivo Zip, puede usar un comodín para omitirlo del archivo. Al agregar un asterisco (*) al final de la ruta del archivo, le indica a PowerShell que solo tome lo que hay dentro del directorio raíz. Debería verse algo como esto:
Comprimir-Archivo -Path C: \ ruta \ al \ archivo \ * -DestinationPath C: \ ruta \ al \ archive.zip

A continuación, digamos que tiene una carpeta con varios tipos de archivos diferentes (.doc, .txt, .jpg, etc.) pero solo desea comprimir todos los de un tipo. Puede decirle a PowerShell que los archive sin tocar los demás explícitamente. La notación del comando se vería así:
Comprimir-Archivo -Path C: \ ruta \ al \ archivo \ *. Jpg -DestinationPath C: \ ruta \ a \ archive.zip

Nota: Los subdirectorios y los archivos de la carpeta raíz no se incluyen en el archivo con este método.
Finalmente, si desea un archivo que solo comprima archivos en el directorio raíz, y todos sus subdirectorios, debe usar el comodín estrella-punto-estrella (*. *) Para comprimirlos. Se vería así:
Comprimir-Archivo-Ruta C: \ ruta \ a \ archivo \ *. * -DestinationPath C: \ ruta \ a \ archive.zip

Nota: Los subdirectorios y los archivos de la carpeta raíz no se incluyen en el archivo con este método.
Incluso después de que el archivo esté completo, puede actualizar un archivo comprimido existente con el uso del -Updateparámetro. Le permite reemplazar versiones de archivo más antiguas en el archivo con otras más nuevas que tienen los mismos nombres y agregar archivos que se han creado en el directorio raíz. Se verá algo como esto:
Comprimir-Archivo -Path C: \ ruta \ a \ archivos -Actualización -DestinationPath C: \ ruta \ a \ archive.zip

Cómo descomprimir archivos con PowerShell
Además de poder comprimir archivos y carpetas, PowerShell tiene la capacidad de descomprimir archivos. El proceso es incluso más fácil que comprimirlos; todo lo que necesita es el archivo de origen y un destino para los datos listos para descomprimir.
Abra PowerShell y escriba el siguiente comando, reemplazando <PathToZipFile>y <PathToDestination>con la ruta a los archivos que desea comprimir y el nombre y la carpeta a la que desea ir, respectivamente:
Expandir-Archivo -LiteralPath <PathToZipFile> -DestinationPath <PathToDestination>

La carpeta de destino especificada para extraer los archivos se completará con el contenido del archivo. Si la carpeta no existía antes de descomprimirla, PowerShell creará la carpeta y colocará el contenido en ella antes de descomprimirla.
De forma predeterminada, si omite el -DestinationPathparámetro, PowerShell descomprimirá el contenido en el directorio raíz actual y usará el nombre del archivo Zip para crear una nueva carpeta.
En el ejemplo anterior, si lo dejamos fuera -DestinationPath, PowerShell creará la carpeta «Archivo» en la ruta «C: \ Users \ brady» y extraerá los archivos del archivo a la carpeta.

Si la carpeta ya existe en el destino, PowerShell devolverá un error cuando intente descomprimir los archivos. Sin embargo, puede forzar a PowerShell a sobrescribir los datos con los nuevos usando el -Forceparámetro.
Solo debe usar el -Forceparámetro si los archivos antiguos ya no son necesarios, ya que esto reemplazará irreversiblemente los archivos en su computadora.