Utiliser PowerShell pour créer des archives ZIP et décompresser des fichiers
Nov 6, 2018
Parfois, il peut être utile de créer des archives zip de manière programmatique ou d'extraire des fichiers d'archives existantes. Windows PowerShell 5.0 a ajouté deux cmdlets pour faire exactement cela. Le cmdlet Compress-Archive permet de créer de nouvelles archives à partir de dossiers ou de fichiers individuels et d'ajouter des fichiers à des archives ; Extract-Archive peut être utilisé pour décompresser des fichiers.
Contenu connexe sélectionné :
Si vous n'avez pas déjà installé PowerShell 5.0 ou une version ultérieure sur vos systèmes, vous pouvez télécharger la dernière version du Windows Management Framework sur le site web de Microsoft.
Utiliser PowerShell pour créer des fichiers Zip
Commençons par utiliser PowerShell pour compresser des fichiers dans une nouvelle archive zip. Tout ce que vous avez à faire est d'utiliser le paramètre -Path pour spécifier le dossier que vous souhaitez compresser et le paramètre –DestinationPath pour spécifier le nom de l'archive que vous souhaitez créer. La commande ci-dessous va zipper le dossier Invoices dans le répertoire racine C et créer une archive appelée Invoices.zip dans le dossier Archives :
Compress-Archive -Path C:Invoices -DestinationPath C:ArchivesInvoices
Alternativement, nous pourrions compresser les fichiers dans le dossier Factures individuellement en utilisant -LiteralPath au lieu de –Path. Cette commande crée une archive avec juste les deux fichiers explicitement listés dans le paramètre –LiteralPath:
Compress-Archive -LiteralPath C: InvoicesFile1.txt, C:InvoicesFile2.txt -DestinationPath C:ArchivesInvoices -Force
Notez que j'ai ajouté le paramètre -Force pour écraser l'archive que j'ai créée en utilisant la première commande. Sans le paramètre -Force, vous ne pouvez pas écraser les archives existantes et PowerShell vous invitera à ajouter des fichiers à l'archive à la place.
Pour ajouter des fichiers à une archive, utilisez le paramètre -Update. La commande ci-dessous ajoute tous les fichiers du dossier Invoices à mon archive Invoices.zip existante :
Compress-Archive -Path C:Invoices* -Update -DestinationPath C:ArchivesInvoices
Facultativement, vous pouvez utiliser le paramètre -CompressionLevel avec l'une des trois valeurs : Optimal, NoCompression ou Fastest. Optimal est le réglage par défaut si le paramètre -CompressionLevel n'est pas défini ; il utilise la meilleure compression disponible, mais cela peut prendre plus de temps que d'utiliser Fastest. Pour créer une archive sans compression, utilisez la valeur NoCompression.
Contenu connexe sélectionné :
Utiliser PowerShell pour décompresser des fichiers
Extraire des fichiers d'une archive est encore plus facile que d'en créer une. Tout ce que vous avez à faire est de spécifier le nom de l'archive et le dossier de destination pour les fichiers décompressés. La commande ci-dessous extrait le contenu de l'archive Invoices.zip dans un dossier nommé InvoicesUnzipped en utilisant la cmdlet Expand-Archive.
Expand-Archive -LiteralPath C:ArchivesInvoices.Zip -DestinationPath C: InvoicesUnzipped
Le dossier dans lequel vous souhaitez décompresser les fichiers n'a pas besoin d'exister ; Expand-Archive créera automatiquement le dossier si nécessaire. Mais si les fichiers que vous souhaitez décompresser existent déjà dans le dossier de destination, Expand-Archive renverra une erreur. Vous pouvez écraser les fichiers dans le dossier de destination en ajoutant le paramètre -Force à la commande.
Partager sur
En savoir plus
À propos de l'auteur
Russell Smith
Consultant en TI
Consultant en TI et auteur spécialisé dans les technologies de gestion et de sécurité. Russell possède plus de 15 ans d'expérience dans le domaine des TI, il a écrit un livre sur la sécurité Windows et a coécrit un texte pour la série de cours académiques officiels de Microsoft (MOAC).
En savoir plus sur ce sujet
Supprimer le fichier avec Powershell s'il existe
PowerShell Write to File : "Out-File" et techniques de sortie de fichier
Comment créer de nouveaux utilisateurs Active Directory avec PowerShell
Comment exécuter un script PowerShell
Qu'est-ce que PowerShell ? Un guide complet de ses fonctionnalités et utilisations