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...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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".
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
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é.
-- Gilles LAURENT MVP Windows Server - Admin Frameworks http://glsft.free.fr
"moi" <moi@pas.la.ici> a écrit dans le message de
news:%23ZSBhcJ3IHA.1200@TK2MSFTNGP04.phx.gbl
| 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é.
"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é.
ç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
Gilles LAURENT [MVP] wrote:
"moi" <moi@pas.la.ici> a écrit dans le message de
news:%23ZSBhcJ3IHA.1200@TK2MSFTNGP04.phx.gbl
ç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( ...
ç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( ...
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 )
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 )
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 )
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
"moi" <moi@pas.la.ici> a écrit dans le message de
news:%23DAMGgc4IHA.4800@TK2MSFTNGP02.phx.gbl
| 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
"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
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
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)
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)