Cómo comprimir (y descomprimir) archivos usando PowerShell

  • Brady Gavin

    @bradyjgavin

  • 22 de junio de 2020, 11:23am EDT
    • 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, encripta los datos y facilita compartir archivos con otros. A continuación se explica cómo comprimir y descomprimir archivos con PowerShell.

      Cómo comprimir archivos con PowerShell

      Empecemos por comprimir algunos archivos en un archivo ZIP con el cmdlet Compress-Archive. Toma la ruta de cualquier archivo que desee comprimir -los archivos múltiples se separan con una coma- y los archiva en el destino que especifique.

      Primero, abre PowerShell buscándolo en el menú Inicio y escribiendo el siguiente comando, sustituyendo <PathToFiles> y <PathToDestination> por la ruta de los archivos que quieres comprimir y el nombre y la carpeta a la que quieres que vaya, respectivamente:

Compress-Archive -LiteralPath <PathToFiles> -DestinationPath <PathToDestination>
Publicidad

Cuando proporcione la ruta de destino, asegúrese de dar un nombre al archivo comprimido o PowerShell lo guardará como «.zip» donde usted especifique.

Nota: Las comillas alrededor de la ruta sólo son necesarias cuando la ruta del archivo contiene un espacio.

Alternativamente, para comprimir todo el contenido de una carpeta -y todas sus subcarpetas- puedes utilizar el siguiente comando, sustituyendo <PathToFolder> y <PathToDestination> por la ruta de los archivos que quieres comprimir y el nombre y la carpeta a la que quieres que vaya, respectivamente:

Compress-Archive -LiteralPath <PathToFolder> -DestinationPath <PathToDestination>

En el ejemplo anterior, pusimos la ruta a un directorio con múltiples archivos y carpetas en él sin especificar archivos individuales. PowerShell toma todo lo que hay dentro del directorio raíz y lo comprime, con subcarpetas y todo.

Publicidad

El cmdlet Compress-Archive permite utilizar un carácter comodín (*) para ampliar la funcionalidad aún más. Al utilizar el carácter, puede excluir el directorio raíz, comprimir sólo los archivos de un directorio o elegir todos los archivos de un tipo específico. Para utilizar un comodín con Compress-Archive, debe utilizar el parámetro -Path en su lugar, ya que -LiteralPath no los acepta.

Anteriormente, 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 utilizar un comodín para omitirla del archivo. Añadiendo un asterisco (*) al final de la ruta del archivo, le dices a PowerShell que sólo tome lo que está dentro del directorio raíz. Debería ser algo así:

Compress-Archive -Path C:\path\to\file\* -DestinationPath C:\path\to\archive.zip

A continuación, digamos que tiene una carpeta con un montón de diferentes tipos de archivos (.doc, .txt, .jpg, etc.) pero sólo quiere comprimir todos los de un tipo. Puedes decirle a PowerShell que los archive sin tocar los otros explícitamente. La notación del comando sería así:

Compress-Archive -Path C:\path\to\file\*.jpg -DestinationPath C:\path\to\archive.zip

Nota: Los subdirectorios y los archivos de la carpeta raíz no se incluyen en el archivo con este método.

Publicidad

Por último, si quieres un archivo que sólo comprima los ficheros del directorio raíz -y todos sus subdirectorios- debes utilizar el comodín estrella-punto-estrella (*.*) para comprimirlos. Sería algo así:

Compress-Archive -Path C:\path\to\file\*.* -DestinationPath C:\path\to\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 parámetro -Update. Le permite reemplazar las versiones más antiguas de los archivos en el archivo con otras más nuevas que tienen los mismos nombres, y añadir los archivos que se han creado en el directorio raíz. Se verá algo así:

Compress-Archive -Path C:\path\to\files -Update -DestinationPath C:\path\to\archive.zip

Cómo descomprimir archivos usando 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 necesitas es el archivo de origen y un destino para los datos listos para descomprimir.

Publicidad

Abre PowerShell y escribe el siguiente comando, sustituyendo <PathToZipFile> y <PathToDestination> por la ruta de los archivos que quieres comprimir y el nombre y la carpeta a la que quieres que vaya, respectivamente:

Expand-Archive -LiteralPath <PathToZipFile> -DestinationPath <PathToDestination>

La carpeta de destino especificada para extraer los archivos se llenará con el contenido del archivo. Si la carpeta no existía antes de descomprimir, PowerShell creará la carpeta y colocará el contenido en ella antes de descomprimir.

Por defecto, si se omite el parámetro -DestinationPath, PowerShell descomprimirá el contenido en el directorio raíz actual y utilizará el nombre del archivo Zip para crear una nueva carpeta.

En el ejemplo anterior, si omitimos -DestinationPath , PowerShell creará la carpeta «Archive» en la ruta «C:³³» y extraerá los ficheros del archivo en la carpeta.

Publicidad

Si la carpeta ya existe en el destino, PowerShell devolverá un error cuando intente descomprimir los ficheros. Sin embargo, puede forzar a PowerShell a sobrescribir los datos con los nuevos utilizando el parámetro -Force.

Sólo debe utilizar el parámetro -Force si los archivos antiguos ya no son necesarios, ya que esto reemplazará irreversiblemente los archivos en su equipo.

Brady Gavin
Brady Gavin lleva 15 años inmerso en la tecnología y ha escrito más de 150 tutoriales y explicaciones detalladas. Ha cubierto todo, desde hacks del registro de Windows 10 hasta consejos para el navegador Chrome. Brady tiene un diploma en Ciencias de la Computación de Camosun College en Victoria, BC. Leer biografía completa «

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *