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

  • Brady Gavin

    @bradyjgavin

  • 22 juin 2020, 11:23am EDT

Le format de fichier ZIP réduit la taille des fichiers en les compressant en un seul fichier. Ce processus permet d’économiser de l’espace disque, de crypter les données et de faciliter le partage des fichiers avec d’autres personnes. Voici comment zipper et dézipper des fichiers à l’aide de PowerShell.

Comment zipper des fichiers à l’aide de PowerShell

Débutons par la compression de quelques fichiers dans une archive de fichier ZIP à l’aide du cmdlet Compress-Archive. Elle prend le chemin d’accès à tous les fichiers que vous voulez compresser – les fichiers multiples sont séparés par une virgule – et les archive dans la destination que vous spécifiez.

D’abord, ouvrez PowerShell en le recherchant dans le menu Démarrer, puis en tapant la commande suivante, en remplaçant <PathToFiles> et <PathToDestination> par le chemin d’accès aux fichiers que vous voulez compresser et le nom et le dossier que vous voulez lui donner, respectivement :

Compress-Archive -LiteralPath <PathToFiles> -DestinationPath <PathToDestination>
Publicité

Lorsque vous fournissez le chemin de destination, veillez à donner un nom au fichier d’archive, sinon PowerShell l’enregistrera sous la forme « .zip  » à l’endroit que vous spécifiez.

Note : les guillemets autour du chemin ne sont nécessaires que lorsque le chemin du fichier contient un espace.

Alternativement, pour compresser tout le contenu d’un dossier – et tous ses sous-dossiers – vous pouvez utiliser la commande suivante, en remplaçant <PathToFolder> et <PathToDestination> par le chemin d’accès aux fichiers que vous voulez compresser et le nom et le dossier où vous voulez qu’il aille, respectivement :

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

Dans l’exemple précédent, nous avons mis le chemin d’accès à un répertoire contenant plusieurs fichiers et dossiers sans spécifier les fichiers individuels. PowerShell prend tout ce qui se trouve à l’intérieur du répertoire racine et le compresse, sous-dossiers et tout.

Publicité

La cmdlet Compress-Archive vous permet d’utiliser un caractère générique (*) pour étendre encore plus la fonctionnalité. Lorsque vous utilisez ce 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 paramètre -Path à la place, car -LiteralPath ne les accepte pas.

Nous avons couvert ci-dessus comment inclure le répertoire racine et tous ses fichiers et sous-répertoires lors de la création d’un fichier d’archive. Toutefois, si vous souhaitez exclure le répertoire 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 indiquez à PowerShell de ne saisir que ce qui se trouve à l’intérieur du répertoire racine. Cela devrait ressembler à quelque chose comme ceci:

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

Suivant, disons que vous avez un dossier avec un tas de types de fichiers différents (.doc, .txt, .jpg, etc.) mais que vous voulez seulement compresser tous ceux d’un seul type. Vous pouvez demander à PowerShell de les archiver sans toucher explicitement aux autres. La notation de la commande ressemblerait à ceci :

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

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

Publicité

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

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

Note : les sous-répertoires et les fichiers du répertoire 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 zippé existant en utilisant le paramètre -Update. 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 les fichiers qui ont été créés dans le répertoire racine. Cela ressemblera à quelque chose comme ceci:

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

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

En plus de pouvoir compresser des fichiers et des dossiers, PowerShell a la capacité 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 à être décompressées.

Publicité

Ouvrez PowerShell et tapez la commande suivante, en remplaçant <PathToZipFile> et <PathToDestination> par le chemin d’accès aux fichiers que vous voulez compresser et le nom et le dossier vers lesquels vous voulez qu’il aille, respectivement :

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

Le dossier de destination spécifié pour extraire les fichiers dans 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 paramètre -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.

Publicité

Si le dossier existe déjà dans la destination, PowerShell renverra une erreur lorsqu’il tentera de décompresser les fichiers. Cependant, vous pouvez forcer PowerShell à écraser les données avec les nouvelles en utilisant le paramètre -Force.

Vous ne devez utiliser le paramètre -Force que si les anciens fichiers ne sont plus nécessaires, car cela remplacera de manière irréversible les fichiers sur votre ordinateur.

Brady Gavin
Brady Gavin est immergé dans la technologie depuis 15 ans et a écrit plus de 150 tutoriels et explicatifs détaillés. Il a tout couvert, des hacks de registre de Windows 10 aux astuces du navigateur Chrome. Brady est titulaire d’un diplôme en informatique du Camosun College de Victoria, en Colombie-Britannique. Lire la bio complète « 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *