Powershell - Compress-Archive et Expand-Archive pour créer et extraire des archives ZIP

Pour me soutenir, vous pouvez vous abonner à la chaîne, partager et liker les vidéos, désactiver votre bloqueur de pub ou encore faire un don. Merci!

Windows Powershell par l’intermédiaire du module Microsoft.PowerShell.Archive, nous permet de créer, de mettre à jour et d’extraire des archives ZIP.

La commande Compress-Archive archive au format ZIP uniquement, ne supporte pas les fichiers de plus de 2GB et ne prend en charge pas les fichiers cachés.

La version 2 du module Microsoft.PowerShell.Archive a visiblement été abandonné :
https://github.com/PowerShell/Microsoft.PowerShell.Archive

# Compresser un dossier et son contenu en spécifiant le niveau de compression (NoCompression, Fastest, Optimal).
# Optimal est la valeur par défaut
Compress-Archive -Path c:\test -DestinationPath c:\test.zip -CompressionLevel Fastest
# Compresser le contenu d'un dossier
Compress-Archive -Path c:\test\* -DestinationPath c:\test.zip
# Compresser le contenu d'un dossier et écraser une archive précédente (-Force)
Compress-Archive -Path c:\test\* -DestinationPath c:\test.zip -Force
# Compresser certains fichiers
Compress-Archive -Path c:\test\doc1.txt,c:\test\*.docx -DestinationPath c:\test.zip
# Compresser certains fichiers en utilisant Get-ChildItem pour filtrer
Get-ChildItem -Path c:\test -file | Compress-Archive -DestinationPath c:\test.zip
# Mettre à jour le contenu de l'archive (les fichiers plus récents remplacement ceux plus ancien dans l'archive
Compress-Archive -Path c:\test -DestinationPath c:\test.zip -Update
# Décompresser une archive dans un dossier avec le nom de l'archive dans le dossier courant
Expand-Archive -Path c:\test.zip
# Décompresser une archive dans un dossier en spécifiant l'emplacement (si le dossier n'existe pas, il sera créé)
Expand-Archive -Path c:\test.zip -DestinationPath c:\test2
# Décompresser une archive dans un dossier avec le nom de l'archive dans le dossier courant en écrasant les fichiers existants
Expand-Archive -Path c:\test.zip -Force
# Afficher le contenu d'une archive
[System.IO.Compression.ZipFile]::OpenRead('c:\test.zip').Entries.fullname
# Pour prendre en compte les fichiers cachés, vous pouvez directement passer par .net mais le fichier perdra son attribut archive
[System.IO.Compression.ZipFile]::CreateFromDirectory('c:\test','c:\test.zip')

Liens en relation