Compresser un dossier.

Ce script permet de créer une archive datée d’un dossier.

$date = (Get-Date).ToString("ddMMyyyyhhmmss")
$dir = Get-Item .
$zipfilename = $dir.fullname + "\" + $dir.name + "-" + $date + "-archives.zip"

set-content $zipfilename ("PK" + [char]5 + [char]6 + ("$([char]0)" * 18))
(Get-ChildItem $zipfilename).IsReadOnly = $false
$shellApplication = new-object -com shell.application
$zipPackage = $shellApplication.NameSpace($zipfilename)
       
    foreach($file in $input )
    {
         $zipPackage.CopyHere($file.FullName)
         Start-sleep -milliseconds 500
    }

Exemple de syntaxe:

Get-Item . | .\create-zip.ps1

1 réflexion sur « Compresser un dossier. »

  1. Pilou

    Hello, quelqu’un pour m’aider svp, j’ai un problème pour zipper un dossier:
    Code:
    $source = « Source »
    $archive = « nomarchive.zip »
    Add-Type -A System.IO.Compression.FileSystem
    [IO.Compression.ZipFile]::ExtractToDirectory(‘$archive’, ‘$source’)

    Message d’erreur:

    Exception lors de l’appel de «ExtractToDirectory» avec «2» argument(s): «Could not find file
    ‘C:\windows\system32\$archive’.»
    Au caractère Ligne:4 : 1
    + [IO.Compression.ZipFile]::ExtractToDirectory(‘$archive’, ‘$source’)
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : FileNotFoundException

    Répondre

Laisser un commentaire

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