[batch] détruire fichier s'il n'existe pas déjà à un autre endroit...

détruire fichier s'il n'existe pas déjà à un autre endroit... [batch] - Programmation

Marsh Posté le 12-01-2002 à 23:39:15    

bonjour,
certains ont peut-être vu que je faisais des fichiers batch en ce moment.... Voici un nouveau pb (que je vais résoudre grâce à vous sûrement...)
Je fais une copie d'un repertoire vers un autre :
xcopy "D:\images\*.*" "\\Pookie\echanges\Pierrick\sauvegarde\images\" /s/d/y
le /d permet de ne copié que les fichiers qui sont à la source et pas à la destination, et de remplacer les fichiers qui sont plus récent à la source qu'à la destination. (Si je travaille sur un fichier par exemple, et qu'il a été modifié depuis la dernière sauvegarde...)
Mon problème c'est que si je décide de faire du ménage à la source et de supprimer ou de déplacer des fichiers, je veux retrouver parfaitement la même organisation du côté de la destination.
Exemple :
source au jour 1 :  
fichier D:\images\toto.jpg
fichier D:\images\robert.jpg
destination jour 1 :
fichier D:\images\toto.jpg
fichier D:\images\robert.jpg
 
source au jour 2 : // suppression de toto.jpg
fichier D:\images\robert.jpg
destination jour 2 :
fichier D:\images\toto.jpg alors qu'il n'existe plus côté source
fichier D:\images\robert.jpg  
 
La première solution que j'employais jusqu'à maintenant, à la barbare, c'était de supprimer intégralement toute la destination et de tout recopier à partir de la source. Très long quand on sait que ça passe par le réseau et que je suis en 10 Mbits et que le repertoire source fait 2 Go
 
Est-ce que vous savez comment faire ce que je veux ? (et est ce que j'ai éé assez clair ?)


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 12-01-2002 à 23:39:15   

Reply

Marsh Posté le 13-01-2002 à 00:40:51    

:hello:
tu peux essayer
if not exist toto.jpg then delete toto.jpg
 
seul probleme, tu devra ecrire ca pour chacun des fichiers  :cry:


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 13-01-2002 à 11:16:31    

en effet,
etape 1 : récupérer tous les chemins de fichiers de la destination
etape 2 : pour chacun des chemin, vérifier s'il existe à la source et le détruire si non trouvé à la source


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 13-01-2002 à 20:10:10    

:bounce:


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 13-01-2002 à 21:42:02    

je vois pas :ouch:


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 14-01-2002 à 02:09:08    

1- Créer un map vers "\\Pookie\echanges", par exemple Z:\
 
En en interractif :
Z:
CD \Pierrick\sauvegarde\images\
FOR %A in (*.*) do if not exist D:\images\%A del %A
 
En en Batch :
Z:
CD \Pierrick\sauvegarde\images\
FOR %%A in (*.*) do if not exist D:\images\%%A del %%A
 
La seul différence, en batch, faut mettre 2 %
 
Le mapping est indispensable parceque  si tu fait :
FOR %A in (\\Pookie\echanges\Pierrick\sauvegarde\images\*.*)
la variable %a ne contient pas juste le nom de fichier, mais tout le chemin, et donc il n'est pas possible de vérifier son inexistance dans D:\images.
 
C'est clair ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 14-01-2002 à 06:57:38    

bon, je teste ça ce soir et je te dis si ça marche bien.
Merci du coup de main (là je pars en cours)


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 14-01-2002 à 14:49:10    

j'ai testé et ça mache impec pour le repertoire en question, mais dès qu'il s'agit des sous repertoire, ça rentrer pas dedans


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 14-01-2002 à 14:58:19    

Ben tu parlais pas de sous-répertoires !
 
Là çà se complique pas mal. En gros, y'a pas vraiement de solution purement BATCH.
 
La seule solution que je connaisse sans passer par un prog compilé, c'est d'utilise WSH : Avec un script JS, y'a moyen, mais c'est plus lourd !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 14-01-2002 à 16:35:22    

Mara's dad a écrit a écrit :

La seule solution que je connaisse sans passer par un prog compilé, c'est d'utilise WSH : Avec un script JS, y'a moyen, mais c'est plus lourd !  




 
Je ne sais absolument de koi tu veux parler, mais continue, ça m'intéresse.
 
PS : JS, c'est pas javascript quand même, parce que là je voisp as trop le rapport...


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 14-01-2002 à 16:35:22   

Reply

Marsh Posté le 14-01-2002 à 16:38:56    

C'est pas du javascript, c'est du JScript. Un truc spécial microsoft.
 
Regarde ce topic : http://forum.hardware.fr/forum2.ph [...] ic=&trash=
 
J'avais donné un exemple pour un PB du même genre.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed