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
Compress-Archive -LiteralPath-DestinationPath
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
Compress-Archive -LiteralPath-DestinationPath
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
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
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
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
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
Expand-Archive -LiteralPath-DestinationPath
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.
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.