2021-01-19 12:25 Temps de lecture : 7 min

Comment compresser (et décompresser) des fichiers à l'aide de PowerShell

Le format ZIP est un moyen efficace de diminuer la taille de vos fichiers en les regroupant dans une archive compressée. Cette méthode permet non seulement de libérer de l'espace de stockage, mais aussi de protéger vos données par chiffrement et de simplifier le partage de fichiers. Découvrons ensemble comment compresser et décompresser des fichiers en utilisant PowerShell.

Compression de fichiers avec PowerShell

Nous allons commencer par la compression de fichiers en utilisant la commande `Compress-Archive`. Cette commande requiert le chemin d'accès aux fichiers à compresser (plusieurs chemins peuvent être séparés par des virgules) et le chemin de destination où sera stockée l'archive.

Pour commencer, ouvrez PowerShell en le recherchant dans le menu Démarrer. Ensuite, saisissez la commande suivante, en remplaçant `` par le chemin des fichiers à compresser et `` par le nom et l'emplacement de l'archive souhaitée :

Compress-Archive -LiteralPath  -DestinationPath 

Lorsque vous indiquez le chemin de destination, n'oubliez pas de spécifier un nom pour le fichier d'archive. Si vous ne le faites pas, PowerShell enregistrera le fichier sous le nom ".zip" à l'emplacement spécifié.

Notez que les guillemets autour du chemin ne sont nécessaires que si celui-ci contient des espaces.

Si vous souhaitez compresser tout le contenu d'un dossier, y compris ses sous-dossiers, vous pouvez utiliser la commande suivante. Remplacez `` par le chemin du dossier à compresser et `` par le nom et l'emplacement de l'archive :

Compress-Archive -LiteralPath  -DestinationPath 

Dans l'exemple précédent, nous avons spécifié le chemin d'un répertoire contenant des fichiers et des sous-dossiers sans mentionner les fichiers individuels. PowerShell prendra en compte tout le contenu du répertoire racine, y compris les sous-dossiers.

La commande `Compress-Archive` supporte également l'utilisation de caractères génériques (wildcards), ce qui étend ses possibilités. L'utilisation d'un caractère générique permet d'exclure le répertoire racine, de ne compresser que les fichiers d'un répertoire ou de sélectionner uniquement les fichiers d'un type spécifique. Pour utiliser un caractère générique, il faut utiliser le paramètre `-Path` car `-LiteralPath` ne les prend pas en charge.

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

En ajoutant un astérisque (`*`) à la fin du chemin, vous indiquez à PowerShell de ne récupérer que le contenu du répertoire racine. Voici un exemple :

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

Supposons que vous ayez un dossier avec différents types de fichiers (.doc, .txt, .jpg, etc.) et que vous souhaitiez uniquement compresser ceux d'un type spécifique. PowerShell vous permet de le faire en précisant le type de fichier dans la commande :

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

Enfin, si vous souhaitez inclure seulement les fichiers du répertoire racine ainsi que ses sous-répertoires, utilisez le caractère générique `*.*`. Voici un exemple :

Compress-Archive -Path C:pathtofiles -Update -DestinationPath C:pathtoarchive.zip

Mise à jour d'une archive ZIP existante

Il est possible de mettre à jour une archive ZIP existante en utilisant le paramètre `-Update`. Cette option permet de remplacer les anciennes versions de fichiers par les plus récentes, tout en ajoutant les nouveaux fichiers créés dans le répertoire racine. Par exemple :

Mise à jour d'une archive existante.

Décompression de fichiers avec PowerShell

PowerShell permet également de décompresser les archives. Le processus est plus simple que la compression. Il suffit de spécifier le fichier source et le chemin de destination pour l'extraction. Pour décompresser une archive, utilisez la commande suivante en remplaçant `` par le chemin de l'archive et `` par le chemin du dossier où extraire les fichiers :

Expand-Archive -LiteralPath  -DestinationPath 

Le dossier spécifié pour la destination sera rempli avec le contenu de l'archive. Si le dossier n'existe pas, PowerShell le créera avant d'y placer le contenu extrait.

Si vous omettez le paramètre `-DestinationPath`, PowerShell décompressera le contenu de l'archive dans un dossier portant le nom de l'archive dans le répertoire actuellement sélectionné.

Si le dossier de destination existe déjà, PowerShell affichera une erreur lors de la tentative d'extraction. Cependant, vous pouvez forcer PowerShell à remplacer les données en utilisant le paramètre `-Force`.

N'utilisez le paramètre `-Force` que si vous êtes certain que les anciens fichiers ne sont plus nécessaires, car cela remplacera irréversiblement les données sur votre machine.

Auteur
France

Rédacteur tech, guides pratiques et astuces numériques.