Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

répertoire dans un *.zip

6 réponses
Avatar
moi
Bonsoir,

Je suis en train de faire un script (vbs) qui doit faire
une copie filtrée d'un répertoire ( par ex C:\Source)
dans un fichier archive ( par ex F:\Cible.zip)

"Tout copier" fonctionne
avec l'objet shell et copyhere
mais
mais je désire utiliser des filtres
( sauf les éventuels fichiers *.truc ;
sauf les éventuels répertoires bidules ,
etc....)

j'ai donc tenté de décomposer l'action avec une procédure récursive
mais je ne parviens même pas à créer un répertoire vide dans l'archive
;o(

Bien sûr, je pourrais faire d'abord une copie filtrée qqpart
( type xcopy C:\Source F:\Bidon /e /c /q /r /y /i
exclude:filtres.txt )
( ou plus raffiné avec robocopy )

puis envoyer F:\Bidon dans F:\Cible.zip (sans filtrage )
et finalement supprimer F:\Bidon ...
mais du point de vue de la gestion de l'espace disque,
c'est plutôt médiocre comme truc...

Quelqu'un aurait-il une idée ?

Merci d'avance,

HB

6 réponses

Avatar
MCI \(ex do ré Mi chel la si do\) [MVP]
Bonjour !

Avec Robocopy, tu peux "simuler" la copie (option /L )
Cela te permet d'utiliser les possibilités de Robocopy pour trouver
l'information des fichiers à copier (voir aussi les options d'affichage,
pour obtenir une liste "brute mais propre".

@+

Michel Claveau
Avatar
Gilles LAURENT [MVP]
"moi" a écrit dans le message de
news:%
| Bonsoir,

Bonjour,

| Je suis en train de faire un script (vbs) qui doit faire
| une copie filtrée d'un répertoire ( par ex C:Source)
| dans un fichier archive ( par ex F:Cible.zip)
[...]

Vous pouvez filtrer un répertoire avec la méthode Filter de l'objet
FolderItems (inclusion et non exclusion). Toutefois le filtre ne
s'appliquant pas de manière récursive, vous perdrez les informations de
chemin d'accès avec la méthode CopyHere. Donc pour répondre à votre
problème, je vous invite à utiliser le composant tiers XZip (Freeware)
et sa méthode Pack. Il vous suffira de parcourir de manière récursive
votre arborescence puis d'archiver les fichiers et dossiers qui ne
vérifient pas vos conditions d'exclusions. La méthode Pack du composant
XZip permet de préserver et/ou modifier le chemin d'accès du fichier
archivé.

Filter Method
http://msdn.microsoft.com/en-us/library/bb787787(VS.85).aspx

XZip
http://www.xstandard.com/en/documentation/xzip/

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
moi
Gilles LAURENT [MVP] wrote:
"moi" a écrit dans le message de
news:%
Bonsoir,





(...)
XZip
http://www.xstandard.com/en/documentation/xzip/

--



J'ai commencé à découvrir ce petit jouet ;o)

ça m'a l'air bien pensé et je pense que je vais chercher une solution
averc ça...

Pour le moment, j'utilise un répertoire temporaire sur le disque des
données pour récupérer le résultat de xcopy ... avant de l'envoyer sur
le disque des sauvegarde ;o( ...

Merci beaucoup,

HB
Avatar
moi
Encore moi...,


Gilles LAURENT [MVP] wrote:

XZip
http://www.xstandard.com/en/documentation/xzip/




ça y est !!! Il semble que tout baigne...

Pour le filtrage des fichiers à mettre ou non, je me suis même payer
le luxe d'utiliser la méthode Test d'un objet ExpressionRègulière...
Cela m'a permis de construire dans le script le "Pattern" à utiliser
en fonction des données de filtrage qui seront transmises au script
dans un fichier de paramètre...
Propre, net, fiable, ...

merci encore ,

HB

PS : Seul bémol sans incidence pour mes besoins :
lors des tests préliminaires de XZip,
j'ai noté que l'on peut supprimer un fichier de l'archive
mais je n'ai pas réussi à supprimer un répertoire ( même
vide )
Avatar
Gilles LAURENT [MVP]
"moi" a écrit dans le message de
news:%
| Encore moi...,

Bonjour,

| ça y est !!! Il semble que tout baigne...
|
| Pour le filtrage des fichiers à mettre ou non, je me suis même payer
| le luxe d'utiliser la méthode Test d'un objet ExpressionRègulière...
| Cela m'a permis de construire dans le script le "Pattern" à utiliser
| en fonction des données de filtrage qui seront transmises au script
| dans un fichier de paramètre...
| Propre, net, fiable, ...

Super :-)

| PS : Seul bémol sans incidence pour mes besoins :
| lors des tests préliminaires de XZip,
| j'ai noté que l'on peut supprimer un fichier de l'archive
| mais je n'ai pas réussi à supprimer un répertoire ( même
| vide )

En effet, la méthode Delete ne supporte ni les répertoires, ni les
caractères de remplacement. De ce fait le fichier à supprimer doit être
pleinement qualifié. Toutefois, pour supprimer un répertoire complet,
vous pouvez lister le contenu de l'archive via la méthode Contents puis
déterminer (via une expression régulière !) les fichiers (oItem.Type=2)
à supprimer un par un avec la méthode Delete.

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
moi
Bonjour,


Gilles LAURENT [MVP] wrote:
(...)

En effet, la méthode Delete ne supporte ni les répertoires, ni les
caractères de remplacement. De ce fait le fichier à supprimer doit
être pleinement qualifié. Toutefois, pour supprimer un répertoire
complet, vous pouvez lister le contenu de l'archive via la méthode
Contents puis déterminer (via une expression régulière !) les
fichiers (oItem.Type=2) à supprimer un par un avec la méthode
Delete.




C'est effectivement, en gros ce que j'ai fait lors des tests...

J'aurais aimé virer de l'archive les éventuels répertoires vides qui
en résultaient...
Question d'esthétique en somme ;o)

A+

HB