Je suis un novice, mais j'essaie de créer un fichier batch qui lit le contenu du dossier de la source, compare les fichiers à la destination, sauvegarde les correspondances et déplace ensuite les fichiers source vers la destination. Je suppose que d'une certaine manière le contenu du fichier dans le répertoire source fonctionne comme un masque.Sauvegarder des fichiers spécifiques avant de les remplacer en fonction du contenu du dossier source du lot
Y a-t-il une technique que je pourrais utiliser pour obtenir ce résultat? J'ai essayé Robocopy
et XCopy
avec près mais pas ce que je cherche. XCopy
a une option exclure mais c'est le contraire de ce dont j'ai besoin. Toutes les suggestions seraient très appréciées.
La mise en place est comme ceci:
Ces dossiers contiennent ce
Parent_folder_new
Folder1 Folder2 Folder3
File1 File1 File1
File2 File2 File2
File3 File3 File3
J'ai de nouveaux fichiers pour remplacer l'ancien:
Parent_folder_old
Folder1 Folder2 Folder3
File2 File1 File1
File3 File3
Avant les fichiers source écrasent ceux de destination Je n'ai besoin de sauvegarder que les fichiers qui seront bientôt remplacés.
J'ai essayé une instruction if, mais je ne sais pas où aller après
Set folder[1]=folder1
Set folder[2]=folder2
Set folder[3]=folder3
for F "tokens=2 delims==" %%f in ('set folder[') do (
if Parent_folder_new\%%f==Parent_folder_old\%%f
::copy results of if statement to Parent_folder_backup\%%f
)
J'espère que cela éclaircit un peu de ce que je suis en train de faire.
S'il vous plaît partager ce que vous avez essayé et décrire exactement ce que vous avez des problèmes avec, alors nous pourrions être en mesure de vous aider. – aschipfl
J'ai mis à jour les détails, j'espère que cela aide – Sid
Votre approche semble être un peu unflexible car il pourrait y avoir plus de 3 dossiers dans l'emplacement parent; Y a-t-il un seul niveau de répertoire, ou est-ce un arbre plus profond? si ce dernier est vrai, voulez-vous gérer uniquement le premier niveau de répertoire et ignorer les éléments les plus profonds? de toute façon, si je l'ai bien compris, vous pouvez utiliser 'xcopy/L/U' pour obtenir une liste des fichiers qui seront copiés ('/L' dit 'xcopy' pour simplement lister les éléments mais n'en copier aucun) et l'utiliser comme l'entrée pour un travail de sauvegarde, puis utilisez 'xcopy/U' (sans le commutateur'/L' pour vraiment copier cette fois) ... – aschipfl