détruire fichier s'il n'existe pas déjà à un autre endroit... [batch] - Programmation
Marsh Posté le 13-01-2002 à 00:40:51
tu peux essayer
if not exist toto.jpg then delete toto.jpg
seul probleme, tu devra ecrire ca pour chacun des fichiers
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
Marsh Posté le 13-01-2002 à 20:10:10
ReplyMarsh Posté le 13-01-2002 à 21:42:02
je vois pas
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 ?
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)
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
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 !
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...
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.
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