Cómo comprimir (y descomprimir) archivos con PowerShell

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. A continuación, se explica cómo comprimir y descomprimir archivos con PowerShell.

Cómo comprimir archivos con PowerShell

Comencemos comprimiendo algunos archivos en un archivo ZIP utilizando 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 y con la ruta de los archivos que desea comprimir y el nombre y la carpeta a la que desea que vaya, respectivamente:

Compress-Archive -LiteralPath  -DestinationPath 

Comprima algunos archivos en PowerShell.

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 y con la ruta de los archivos que desea comprimir y el nombre y la carpeta a la que desea que vaya, respectivamente:

Compress-Archive -LiteralPath  -DestinationPath 

Comprima una carpeta completa y todo su contenido.

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 ampliar 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 parámetro -Path en su lugar, ya que -LiteralPath no los acepta.

Compress-Archive -Path C:pathtofile* -DestinationPath C:pathtoarchive.zip

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.  Añadiendo un asterisco

al final de la ruta del archivo, le dice a PowerShell que solo tome lo que hay dentro del directorio raíz. Debería verse algo como esto:

Compress-Archive -Path C:pathtofile*.jpg -DestinationPath C:pathtoarchive.zip

Comprima todo el contenido de una carpeta, sin la carpeta raíz.

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í:

Comprima solo tipos de archivos específicos de una carpeta.

Compress-Archive -Path C:pathtofile*.* -DestinationPath C:pathtoarchive.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 algo como esto:

Comprima solo los archivos de la carpeta raíz con el uso de la tarjeta widlcard star-dot-star (*. *).

Compress-Archive -Path C:pathtofiles -Update -DestinationPath C:pathtoarchive.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 parámetro -Update. 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:

Actualice un archivo zip ya existente con el uso del parámetro -Update.

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

Expand-Archive -LiteralPath  -DestinationPath 

y

con la ruta de los archivos que desea comprimir y el nombre y la carpeta a la que desea que vaya, respectivamente:

Descomprima un archivo con el cmdlet Expand-Archive.

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 parámetro -DestinationPath, 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 dejamos fuera -DestinationPath, PowerShell creará la carpeta «Archivo» en la ruta «C: Usersbrady» y extraerá los archivos del archivo a la carpeta.

Si omite el parámetro -DestinationPath, PowerShell extrae el zip en su directorio seleccionado actualmente.

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 parámetro -Force.

Solo debe usar el parámetro -Force si los archivos antiguos ya no son necesarios, ya que esto reemplazará irreversiblemente los archivos en su computadora.