Question [MAJ V1.1][Module] Gestion des zip (IOnic.Zip.dll)
- Matthew BETTON
- Auteur du sujet
- Hors Ligne
- Membre platinium
Réduire
Plus d'informations
- Messages : 968
- Remerciements reçus 0
il y a 12 ans 5 mois #12087
par Matthew BETTON
[MAJ V1.1][Module] Gestion des zip (IOnic.Zip.dll) a été créé par Matthew BETTON
[edit] MAJ le 22/06/2012 (prise en compte des commentaires de Laurent Dardenne, que je remercie).
Bonsoir,
Ci-après un module qui permet de gérer des archives zip à l'aide la dll 'IOnic.Zip.dll' issue du projet DotNetZip. Pour pouvoir utiliser ce module il faut la télécharger à cette adresse .
Pour l'utiliser, il suffit de créer un sous répertoire \"IOnicZip\" dans le répertoire des modules \"C:\Windows\System32\WindowsPowerShell\v1.0\Modules\", d'y placer le script module 'IonicZip.psm1' ainsi que la DLL 'Ionic.Zip.dll'.
Ce module ne contient évidemment pas toutes les fonctionnalités permises par la librairie 'IOnic.Zip.dll'. Aussi, il peut être modifié, évoluer...
Merci d'avance pour vos retours.
Lien de téléchargement pour IonicZip_psm1.zip
Quelques usages (Pour plus de détails, voir Command Based Help via Get-Help sur Cmdlets):
[code:1]
# Importer le module pour pouvoir utiliser les Cmdlet
# il est possible d'ajouter cette ligne dans l'un des profils PowerShell pour qu'il soit systématiquement chargé, à l'ouverture d'une console PoSh
Import-Module ioniczip
# Affiche le contenu du fichier zip
Get-ZipContent -FilePath \"D:\MyZipFile.zip\" -list
# Créer un nouveau Zip et encrypte le contenu avec un mot de passe
Set-ZipContent -Source \"D:\File.dat\" -Destination \"D:\MyZipFile.zip\" -Password \"MyPassword!\"
# Récupère le contenu du répertoire et l'ajoute à un fichier ZIP. S'il existe déjà, les données sont ajoutées. Si ce n'est pas le cas, le zip est créé
Get-ChildItem D:\sources | Add-ZipContent -Source {$_.FullName} -Destination d:\sources.zip
# Idem exemple précédent. Ici les données sont encryptés via la méthode d'encryptage WinZipAes256.
Add-ZipContent -Source \"D:\File.dat\" -Destination \"D:\MyZipFile.zip\" -Password 'MyPassword!' -Encryption WinZipAes256
# Extrait le contenu du fichier zip dans le répertoire \"E:\Data\"
Expand-Zip -Source \"D:\File.zip\" -Destination \"E:\Data\"
# Extrait le contenu du fichier zip dans le répertoire \"E:\Data\", en spécifiant un mot de passe et en indiquant que les données de destination déjà existantes peuvent être écrasées.
Expand-Zip -Source \"D:\File.zip\" -Destination \"E:\Data\" -Force -Password \"Password!\"
[/code:1]
[edit]
Prise en compte des commentaires de Laurent du 22/06 (voir plus bas).
[edit]
Ajout du script en pièce jointe afin d'éviter toute modification du code par Joomla .
@+
Matthew<br><br>Message édité par: Matthew BETTON, à: 24/06/12 14:21
Bonsoir,
Ci-après un module qui permet de gérer des archives zip à l'aide la dll 'IOnic.Zip.dll' issue du projet DotNetZip. Pour pouvoir utiliser ce module il faut la télécharger à cette adresse .
Pour l'utiliser, il suffit de créer un sous répertoire \"IOnicZip\" dans le répertoire des modules \"C:\Windows\System32\WindowsPowerShell\v1.0\Modules\", d'y placer le script module 'IonicZip.psm1' ainsi que la DLL 'Ionic.Zip.dll'.
Ce module ne contient évidemment pas toutes les fonctionnalités permises par la librairie 'IOnic.Zip.dll'. Aussi, il peut être modifié, évoluer...
Merci d'avance pour vos retours.
Lien de téléchargement pour IonicZip_psm1.zip
Quelques usages (Pour plus de détails, voir Command Based Help via Get-Help sur Cmdlets):
[code:1]
# Importer le module pour pouvoir utiliser les Cmdlet
# il est possible d'ajouter cette ligne dans l'un des profils PowerShell pour qu'il soit systématiquement chargé, à l'ouverture d'une console PoSh
Import-Module ioniczip
# Affiche le contenu du fichier zip
Get-ZipContent -FilePath \"D:\MyZipFile.zip\" -list
# Créer un nouveau Zip et encrypte le contenu avec un mot de passe
Set-ZipContent -Source \"D:\File.dat\" -Destination \"D:\MyZipFile.zip\" -Password \"MyPassword!\"
# Récupère le contenu du répertoire et l'ajoute à un fichier ZIP. S'il existe déjà, les données sont ajoutées. Si ce n'est pas le cas, le zip est créé
Get-ChildItem D:\sources | Add-ZipContent -Source {$_.FullName} -Destination d:\sources.zip
# Idem exemple précédent. Ici les données sont encryptés via la méthode d'encryptage WinZipAes256.
Add-ZipContent -Source \"D:\File.dat\" -Destination \"D:\MyZipFile.zip\" -Password 'MyPassword!' -Encryption WinZipAes256
# Extrait le contenu du fichier zip dans le répertoire \"E:\Data\"
Expand-Zip -Source \"D:\File.zip\" -Destination \"E:\Data\"
# Extrait le contenu du fichier zip dans le répertoire \"E:\Data\", en spécifiant un mot de passe et en indiquant que les données de destination déjà existantes peuvent être écrasées.
Expand-Zip -Source \"D:\File.zip\" -Destination \"E:\Data\" -Force -Password \"Password!\"
[/code:1]
[edit]
Prise en compte des commentaires de Laurent du 22/06 (voir plus bas).
[edit]
Ajout du script en pièce jointe afin d'éviter toute modification du code par Joomla .
@+
Matthew<br><br>Message édité par: Matthew BETTON, à: 24/06/12 14:21
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 12 ans 5 mois #12089
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:[Module] Gestion des zip (IOnic.Zip.dll)
Salut Matthew,
çà m'a l'air bien.
Je procéde comment, si c'est possible, pour créer une archive via le pipe, du genre :
[code:1]
Dir *.dll,*.res| \"create-zip\"
New-Setup -AllFiles | \"create-zip\"
[/code:1]
çà m'a l'air bien.
Je procéde comment, si c'est possible, pour créer une archive via le pipe, du genre :
[code:1]
Dir *.dll,*.res| \"create-zip\"
New-Setup -AllFiles | \"create-zip\"
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Matthew BETTON
- Auteur du sujet
- Hors Ligne
- Membre platinium
Réduire
Plus d'informations
- Messages : 968
- Remerciements reçus 0
il y a 12 ans 5 mois #12091
par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:[Module] Gestion des zip (IOnic.Zip.dll)
Salut Laurent,
Pour générer une archive via le pipe, il faut utiliser la fonction / Cmdlet Add-ZipContent.
Les exemples sont donnés dans les commands based help.
[code:1]
.Example
\".\temp\" | Add-ZipContent -Destination D:\TempFile.zip
Adds temp directory and all its content from current path folder to a 'D:\TempFile.zip'.
.Example
Get-ChildItem D:\sources | ForEach-Object{Add-ZipContent -Source $_.FullName -Destination d:\sources.zip}
Get-ChildItem D:\sources | ForEach-Object{$_.FullName} | Add-ZipContent -Destination d:\sources.zip
Those two commands both get files and sub-folders in D:\Sources and compress them in D:\Sources.zip
.Example
Get-ChildItem D:\sources | ForEach-Object{$_.FullName} | Add-ZipContent -Destination d:\sources.zip -Update -Password \"password!\"
Gets files and sub-folders in D:\Sources and compress them in D:\Sources.zip.
Already existing files in the zip file archive will be updated.
All datas will be encrypted with a password.
[/code:1]
Ici, il s'agit de texte : c'est le nom du chemin à compresser qu'il faut transmettre à la commande. J'ai pensé à donner la possibilité de récupérer depuis le pipe des objets du type [System.IO.FileInfo] ou [System.IO.DirectoryInfo].... Code à faire évoluer
Pour générer une archive via le pipe, il faut utiliser la fonction / Cmdlet Add-ZipContent.
Les exemples sont donnés dans les commands based help.
[code:1]
.Example
\".\temp\" | Add-ZipContent -Destination D:\TempFile.zip
Adds temp directory and all its content from current path folder to a 'D:\TempFile.zip'.
.Example
Get-ChildItem D:\sources | ForEach-Object{Add-ZipContent -Source $_.FullName -Destination d:\sources.zip}
Get-ChildItem D:\sources | ForEach-Object{$_.FullName} | Add-ZipContent -Destination d:\sources.zip
Those two commands both get files and sub-folders in D:\Sources and compress them in D:\Sources.zip
.Example
Get-ChildItem D:\sources | ForEach-Object{$_.FullName} | Add-ZipContent -Destination d:\sources.zip -Update -Password \"password!\"
Gets files and sub-folders in D:\Sources and compress them in D:\Sources.zip.
Already existing files in the zip file archive will be updated.
All datas will be encrypted with a password.
[/code:1]
Ici, il s'agit de texte : c'est le nom du chemin à compresser qu'il faut transmettre à la commande. J'ai pensé à donner la possibilité de récupérer depuis le pipe des objets du type [System.IO.FileInfo] ou [System.IO.DirectoryInfo].... Code à faire évoluer
Connexion ou Créer un compte pour participer à la conversation.
- SiSMik
- Hors Ligne
- Membre platinium
Réduire
Plus d'informations
- Messages : 492
- Remerciements reçus 0
il y a 12 ans 5 mois #12094
par SiSMik
Réponse de SiSMik sur le sujet Re:[Module] Gestion des zip (IOnic.Zip.dll)
J'utilise déjà cette dll dans bon nombre de scripts, bien cool ce petit moduie et voilà comment c'est documenté !!
Connexion ou Créer un compte pour participer à la conversation.
- Richard Lazaro
- Hors Ligne
- Membre platinium
Réduire
Plus d'informations
- Messages : 530
- Remerciements reçus 0
il y a 12 ans 5 mois #12099
par Richard Lazaro
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Réponse de Richard Lazaro sur le sujet Re:[Module] Gestion des zip (IOnic.Zip.dll)
Laurent qui ramasse un RTFM, c'est magique :']
En tout cas, tout cela a l'air bien sympa.
En tout cas, tout cela a l'air bien sympa.
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 12 ans 5 mois #12102
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:[Module] Gestion des zip (IOnic.Zip.dll)
Richard Lazaro écrit:
Hier soir, après 8 heures de codage, j'avais un peu de mal %-)
Faut juste être patientLaurent qui ramasse un RTFM, c'est magique :']
Hier soir, après 8 heures de codage, j'avais un peu de mal %-)
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.149 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Contributions à la communauté
- [MAJ V1.1][Module] Gestion des zip (IOnic.Zip.dll)