Agence web » Actualités du digital » Comment compresser (et décompresser) des fichiers à l'aide de PowerShell

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

Le format de fichier ZIP réduit la taille des fichiers en les compressant en un seul fichier. Ce processus économise de l'espace disque, crypte les données et facilite le partage de fichiers avec d'autres personnes. Voici comment compresser et décompresser des fichiers à l'aide de PowerShell.

Comment compresser des fichiers à l'aide de PowerShell

Commençons par compresser certains fichiers dans une archive de fichiers ZIP à l'aide de l'applet de commande Compress-Archive. Il prend le chemin d'accès aux fichiers que vous souhaitez compresser (plusieurs fichiers sont séparés par une virgule) et les archive dans la destination que vous spécifiez.

Tout d'abord, ouvrez PowerShell en le recherchant dans le menu Démarrer, puis en tapant la commande suivante, en remplaçant et avec le chemin d'accès aux fichiers que vous souhaitez compresser et le nom et le dossier que vous souhaitez qu'il aille, respectivement:

Compress-Archive -LiteralPath  -DestinationPath 

Lorsque vous fournissez le chemin de destination, assurez-vous de donner un nom au fichier d'archive ou PowerShell l'enregistrera en tant que «.zip» là où vous le spécifiez.

Remarque: Les citations autour du chemin d'accès ne sont nécessaires que lorsque le chemin d'accès au fichier contient un espace.

Alternativement, pour compresser l'intégralité du contenu d'un dossier – et tous ses sous-dossiers – vous pouvez utiliser la commande suivante, en remplaçant et avec le chemin d'accès aux fichiers que vous souhaitez compresser et le nom et le dossier dans lesquels vous voulez qu'il aille, respectivement:

Compress-Archive -LiteralPath  -DestinationPath 

Dans l'exemple précédent, nous mettons le chemin vers un répertoire contenant plusieurs fichiers et dossiers sans spécifier de fichiers individuels. PowerShell prend tout à l'intérieur du répertoire racine et le compresse, les sous-dossiers et tout.

L'applet de commande Compress-Archive vous permet d'utiliser un caractère générique (*) pour étendre encore plus la fonctionnalité. Lorsque vous utilisez le caractère, vous pouvez exclure le répertoire racine, compresser uniquement les fichiers d'un répertoire ou choisir tous les fichiers d'un type spécifique. Pour utiliser un caractère générique avec Compress-Archive, vous devez utiliser le -Path à la place, car -LiteralPath ne les accepte pas.

Ci-dessus, nous avons expliqué comment inclure le répertoire racine et tous ses fichiers et sous-répertoires lors de la création d'un fichier d'archive. Cependant, si vous souhaitez exclure le dossier racine du fichier Zip, vous pouvez utiliser un caractère générique pour l'omettre de l'archive. En ajoutant un astérisque (*) à la fin du chemin d'accès au fichier, vous dites à PowerShell uniquement de saisir ce qui se trouve à l'intérieur du répertoire racine. Ça devrait ressembler a quelque chose comme ca:

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

Supposons ensuite que vous avez un dossier avec un tas de types de fichiers différents (.doc, .txt, .jpg, etc.) mais que vous souhaitez uniquement compresser tous les types. Vous pouvez dire à PowerShell de les archiver sans toucher explicitement aux autres. La notation de la commande ressemblerait à ceci:

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

Remarque: Les sous-répertoires et les fichiers du dossier racine ne sont pas inclus dans l'archive avec cette méthode.

Enfin, si vous voulez une archive qui comprime uniquement les fichiers du répertoire racine – et tous ses sous-répertoires – vous utiliserez le caractère générique étoile-point-étoile (*. *) Pour les compresser. Cela ressemblerait à quelque chose comme ceci:

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

Remarque: Les sous-répertoires et les fichiers du dossier racine ne sont pas inclus dans l'archive avec cette méthode.

Même une fois l'archive terminée, vous pouvez mettre à jour un fichier compressé existant en utilisant le -Update paramètre. Il vous permet de remplacer les anciennes versions de fichiers dans l'archive par des versions plus récentes portant les mêmes noms et d'ajouter des fichiers créés dans le répertoire racine. Cela ressemblera à ceci:

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

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

En plus de pouvoir compresser des fichiers et des dossiers, PowerShell a la possibilité de décompresser des archives. Le processus est encore plus facile que de les compresser; tout ce dont vous avez besoin est le fichier source et une destination pour les données prêtes à décompresser.

Ouvrez PowerShell et saisissez la commande suivante, en remplaçant et avec le chemin d'accès aux fichiers que vous souhaitez compresser et le nom et le dossier dans lesquels vous voulez qu'il aille, respectivement:

Expand-Archive -LiteralPath  -DestinationPath 

Le dossier de destination spécifié pour l'extraction des fichiers se remplira avec le contenu de l'archive. Si le dossier n'existait pas avant la décompression, PowerShell créera le dossier et y placera le contenu avant la décompression.

Par défaut, si vous omettez le -DestinationPath , PowerShell décompressera le contenu dans le répertoire racine actuel et utilisera le nom du fichier Zip pour créer un nouveau dossier.

Dans l'exemple précédent, si nous omettons -DestinationPath , PowerShell créera le dossier «Archive» dans le chemin «C: Users brady» et extraira les fichiers de l'archive dans le dossier.

Si le dossier existe déjà dans la destination, PowerShell renvoie une erreur lorsqu'il essaie de décompresser les fichiers. Cependant, vous pouvez forcer PowerShell à remplacer les données par les nouvelles en utilisant le -Force paramètre.

Vous ne devez utiliser que le -Force si les anciens fichiers ne sont plus nécessaires, car cela remplacera irréversiblement les fichiers sur votre ordinateur.

★★★★★