Name

Add-ZipEntry

SYNOPSIS

Ajoute une entrée dans le catalogue d'une archive Zip existante.

SYNTAX

Add-ZipEntry -InputObject <Object> [-ZipFile] <ZipFile> [[-Name] <String>] [-Comment <String>] [-EntryPathRoot <String>] [-Passthru] [<CommonParameters>]

DESCRIPTION

Ajoute une entrée dans le catalogue d'une archive .ZIP ou d'une archive auto extractible .EXE, cette entrée peut être un nom de fichier ou de répertoire, une chaîne de caractères ou un tableau d'octets.

PARAMETERS

-InputObject <Object>

Contenu associé à une entrée d'archive.

Les types attendus sont :

 - Un ou des objets fichiers ou répertoires,

 - un nom ou des noms de fichier ou de répertoire,

 - une chaîne de caractères

 ou un tableau d'octets.

Tous les autres types d'objet seront transformés en chaîne de caractères via la méthode ToString().

Required? True
Position? named
Default value  
Accept pipeline input? true (ByValue)
Accept wildcard characters? False

-ZipFile <ZipFile>

Archive cible dans laquelle on ajoute l'entrée précisée.

Ce paramètre attend un objet de type ZipFile et pas un nom de fichier.

Required? True
Position? 0
Default value  
Accept pipeline input? false
Accept wildcard characters? False

-Name <String>

Chaque entrée d'archive est associée à un nom dans le catalogue. Pour les fichiers ou les répertoires, leurs nom sont automatiquement utilisés comme noms d'entrées à la racine de l'archive.

Pour les chaînes de caractères ou les tableaux d'octets, vous devez préciser un nom d'entrée. L'usage du paramètre -EntryPathRoot n'influencera pas ce nommage.

Lors d'un appel à la fonction Expand-ZipFile les entrées de type string et tableau seront décompressées tout comme les fichiers.

Required? False
Position? 1
Default value  
Accept pipeline input? true (ByPropertyName)
Accept wildcard characters? False

-Comment <String>

Commentaire associé à l'entrée. Pour les entrées de type string ou tableau, par défaut leur champ contiendra le nom de leur type : [String] ou [Byte[]].

Required? False
Position? named
Default value  
Accept pipeline input? false
Accept wildcard characters? False

-EntryPathRoot <String>

La nouvelle entrée sera ajoutée dans un répertoire spécifique. Par défaut elle est ajoutée à la racine de l'arborescence contenue dans l'archive. La valeur de ce paramètre doit référencer un répertoire existant.

Pour éviter les collisions de nom d'entrée lors de la compression récursive d'une arborescence vous devrez utiliser ce paramètre. Celui-ci permet de construire le nom de l'entrée relativement au nom de répertoire spécifié.

Par exemple en précisant 'C:\Temp\Backup', lors de la compression récursive de 'C:\Temp\Backup' le traitement de construction du nom d'entrée retranchera 'C:\Temp\Backup' à chaque nom de fichier reçu. Donc, pour les fichiers 'C:\Temp\Backup\File1.ps1' et 'C:\Temp\Backup\Projet\File1.ps1' les entrées créées dans le catalogue seront respectivement: File1.ps1 Projet/File.ps1.

De préciser un nom de répertoire différent de celui d'où débute l'archivage déclenchera une erreur et stoppera l'archivage du path en cours.

Required? False
Position? named
Default value  
Accept pipeline input? false
Accept wildcard characters? False

-Passthru <SwitchParameter>

Une fois l'entrée ajoutée au catalogue de l'archive, elle est émise dans le pipeline.

Required? False
Position? named
Default value  
Accept pipeline input? false
Accept wildcard characters? False

<CommonParameters>

This cmdlet supports the common parameters: Verbose, Debug,
ErrorAction, ErrorVariable, WarningAction, WarningVariable,
OutBuffer, PipelineVariable, and OutVariable.

For more information, see about_CommonParameters.

INPUTS

OUTPUTS

Ionic.Zip.ZipEntry

NOTES

Par défaut l'ajout d'une entrée existante déclenchera une exception.

Cette fonction est couplée à la fonction nommée Expand-ZipEntry.

EXAMPLES

-------------- EXAMPLE 1 --------------

PS C:\> try {         
$ZipFile=Get-Zipfile -Path C:\Temp\Test.zip
$File=Get-Item C:\Temp\Test.ps1 
Add-ZipEntry -InputObject $File -ZipFile $ZipFile
} finally {
$ZipFile.Close()
}

Ces commandes ajoutent une entrée dans l'archive C:\Temp\Test.zip:

-La première instruction crée un objet archive à partir d'un nom de fichier,

-la seconde crée un objet fichier à partir d'un nom de fichier,

-la troisième ajoute le fichier dans l'archive,

-la quatrième enregistre l'archive sur le disque et libère les ressources systèmes.

-------------- EXAMPLE 2 --------------

PS C:\> try {         
$ZipFile=Get-Zipfile -Path C:\Temp\Test.zip
Get-ChildItem *.txt|Add-ZipEntry -ZipFile $ZipFile
} finally {
$ZipFile.Close()
}

Ces commandes ajoutent des entrées dans l'archive C:\Temp\Test.zip :

-La première instruction crée un objet archive à partir d'un nom de fichier,

-la seconde, depuis le répertoire courant, ajoute dans l'archive tous les fichiers portant l'extension .txt,

-la troisième enregistre l'archive sur le disque et libère les ressources systèmes.

-------------- EXAMPLE 3 --------------

PS C:\> try {         
$ZipFile=Get-Zipfile -Path C:\Temp\Test.zip
[string]$Text=Get-Content C:\Temp\Test.ps1|Out-String
Add-ZipEntry -InputObject $Text -Name MyText -ZipFile $ZipFile
} finally {
$ZipFile.Close()
}

Ces commandes ajoutent, à partir d'une chaîne de caractères, une entrée nommée dans l'archive C:\Temp\Test.zip  :

-La première instruction crée un objet archive à partir d'un nom de fichier,

-la seconde lit un fichier texte et récupère le résultat dans une chaîne de caractères,

-la troisième crée une entrée dont le contenu est renseigné à partir d'une chaîne de caractères,

-la quatrième enregistre l'archive sur le disque et libère les ressources systèmes.

-------------- EXAMPLE 4 --------------

PS C:\> try {
$ZipFile=Get-Zipfile -Path C:\Temp\Test.zip         
ConvertTo-Clixml $PSVersionTable | Add-ZipEntry -Name 'PSVersiontable_clixml' -ZipFile $ZipFile
} finally {
$ZipFile.Close()
}

Ces commandes ajoutent, à partir d'un objet sérialisé, une entrée nommée dans l'archive C:\Temp\Test.zip :

-La première instruction crée un objet archive à partir d'un nom de fichier,

-la seconde sérialise l'objet contenu dans la variable $PSVersiontable et l'ajoute en tant qu'entrée nommée dans l'archive,

-la troisième enregistre l'archive sur le disque et libère les ressources systèmes.

-------------- EXAMPLE 5 --------------

PS C:\> try {         
$ZipFile=Get-Zipfile -Path C:\Temp\Test.zip 
[byte[]] $Array=@(1..20)
Add-ZipEntry -InputObject $Array -Name MyArray -ZipFile $ZipFile
} finally {
$ZipFile.Close()
}

Ces commandes ajoutent une entrée nommée MyArray dans l'archive C:\Temp\Test.zip:

-La première instruction crée un objet archive à partir d'un nom de fichier,

-la seconde ajoute l'objet contenu dans la variable $Array et l'ajoute dans l'archive en tant qu'entrée nommée MyArray,

-la troisième enregistre l'archive sur le disque et libère les ressources systèmes.

RELATED LINKS

Last edited Mar 10, 2014 at 2:22 PM by LaurentDardenne, version 5

Comments

No comments yet.