Compresser et décompresser des fichiers à l'aide de PowerShell
Dans PowerShell 5.0, Microsoft dispose de commandes pour créer des archives zip et extraire des fichiers à partir d’archives existantes. Cet article traite des commandes PowerShell pour archiver et décompresser les fichiers compressés.
Les commandes suivantes sont deux des applets de commande les plus récentes publiées dans PowerShell v5.0 : la commande Compress-Archive
crée un fichier d’archive compressé à partir de dossiers ou de fichiers individuels et la commande Expand-Archive
pour extraire des fichiers d’un fichier d’archive compressé.
Compresser des fichiers à l’aide de PowerShell
Utilisons PowerShell pour compresser les fichiers dans une nouvelle archive .zip
.
Utilisez le paramètre -Path
pour spécifier l’emplacement du dossier que nous voulons compresser et le paramètre -DestinationPath
pour spécifier le nom de l’archive compressée que vous souhaitez créer.
Par exemple, la commande ci-dessous va compresser le dossier Temp
dans le répertoire racine C:
et créer une archive appelée Temp_Files.zip
dans le dossier Temp :
Compress-Archive -Path C:\Temp -DestinationPath C:\Temp\Temp_Files.zip
Alternativement, nous pourrions compresser les fichiers dans le dossier Temp individuellement en utilisant le paramètre -LiteralPath
au lieu du paramètre -Path
. Cela crée une archive avec seulement les deux fichiers listés dans le paramètre -LiteralPath
:
Compress-Archive -LiteralPath C:\Temp\File1.txt, C:\Temp\File2.txt -DestinationPath C:\Temp\Temp_Files.zip -Force
Nous avons ajouté le paramètre -Force
pour écraser la première archive que j’ai créée. Sans le paramètre -Force
, vous ne pouvez pas remplacer les archives existantes, et Windows PowerShell vous invite à ajouter des fichiers à l’archive à la place.
Pour ajouter plusieurs fichiers à une archive, nous pouvons utiliser le paramètre -Update
. Par exemple, la commande ci-dessous ajoute tous les fichiers du dossier Factures
à mon archive Temp_Files.zip
existante :
Compress-Archive -Path C:\Temp\* -Update -DestinationPath C:\Temp\Temp_Files.zip
Nous pouvons également utiliser le paramètre -CompressionLevel
avec l’une des trois valeurs suivantes : NoCompression
, Optimal
ou Fastest
.
Optimal
est la valeur par défaut si le paramètre -CompressionLevel
n’est pas présent dans l’expression. La compression Optimal
utilise la meilleure compression, mais elle peut prendre plus de temps que la compression Fastest
.
Utilisez la valeur NoCompression
pour créer une archive sans compression.
Compress-Archive -Path C:\Temp\* -Update -DestinationPath C:\Temp\Temp_Files.zip -CompressionLevel Optimal
Décompressez les fichiers à l’aide de PowerShell
Pour extraire des fichiers d’une archive, nous devons spécifier le nom de l’archive et le dossier de destination des fichiers décompressés.
L’utilisation de la commande Expand-Archive
extraira le contenu de l’archive Temp_Files.zip
dans un dossier Temp
.
Expand-Archive -LiteralPath C:\Temp\Temp_Files.Zip -DestinationPath C:\Temp
Expand-Archive
créera automatiquement le dossier des fichiers extraits.
Cependant, si le fichier compressé que nous décompressons existe déjà dans le dossier de destination, Expand-Archive
générera une erreur. Nous pouvons écraser les fichiers dans le dossier de destination en ajoutant le paramètre -Force
à la ligne de commande.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn