Compresser des fichiers en ligne de commande via PowerShell

Compress_PowerShell_Ban

Sous Linux, compresser des fichiers ou créer une archive compressée d’un dossier est une chose extrêmement simple à réaliser. Vous n’avez besoin d’aucune application tiers et vous avez l’embarras du choix sur les formats ou les types de compressions qui s’offrent à vous.

Sous Windows, vous pouvez facilement créer une archive compressée au format Zip en passant par Windows Explorer. En revanche, sans applications tiers, vous n’aurez pas tellement d’autres choix de compressions (Rar, tar.gz, gzip…) et que peu de possibilités pour réaliser cette action en ligne de commande.

Alors plutôt que de ré-inventer la roue, je vous propose de compresser facilement et rapidement au format Zip en PowerShell grâce à PowerShell Community Extensions.

PowerShell Community Extensions (PSCX) is aimed at providing a widely useful set of additional cmdlets, providers, aliases, filters, functions and scripts for Windows PowerShell that members of the community have expressed interest in.

Il s’agit d’un petit outil qui s’installe très simplement sur votre machine et ajoute automatiquement une série de CmdLet très utiles. Vous dispensant ainsi de re-créer certaines fonctionnalités de bases au sein de vos scripts PowerShell. Dans le cas présent, compresser un dossier en vue de créer une archive Zip.

Le principe est simple, il vous suffit de récupérer l’installateur sur le site suivant : http://pscx.codeplex.com et de l’installer.

Pour visualiser, la liste des nouvelles CmdLet qui ont été ajoutées sur votre poste, vous pouvez utiliser la commande suivante dans votre fenêtre PowerShell :


Get-Command -module pscx

pscx liste commands

Revenons-en maintenant à notre sujet de base, créer une archive compressée ! 🙂

Pour cela, vous verrez que nous disposons de plusieurs nouvelles CmdLet en fonction du format qui vous intéresse :


Write-BZip2
Write-GZip
Write-Tar
Write-Zip

Pour le fonctionnement de la CmdLet, c’est assez simple, procédez comme suit pour créer une archive Zip :


Write-Zip RepertoireOriginal ArchiveCompressee.zip