sauvegarde avec xcopy

sauvegarde avec xcopy - Shell/Batch - Programmation

Marsh Posté le 18-01-2006 à 11:11:11    

j'utilise xcopy/E/D/Y \\source\repsource\ c:repdestination\
en sauvegarde automatique journalière uniquement des fichiers ayant été modifiés
 
mon problème :
si un fichier a été copié hier de repsource dans repdestination
et qu'aujourd'hui, je le supprime de repsource, mon batch de demain laissera ce fichier dans repdestination
et ainsi de suite, j'ai des anciens fichiers qui restent dans ma sauvegarde alors qu'ils n'existent plus dans mon repertoire source... et idem pour les repertoires !!!
 
comment corriger ça :??:


Message édité par wamdk le 18-01-2006 à 11:15:05
Reply

Marsh Posté le 18-01-2006 à 11:11:11   

Reply

Marsh Posté le 21-01-2006 à 12:13:02    

J'avais eu ce probleme là chez un client. J'ai choisi la solution (pas très belle) de faire un del de la sauvegarde, puis un copie.
 
Cela peut etre améliorée par exemple si tu fais une copie tout les jours tu fais un del toute les semaines.
 
 
Voila :-)
 
 
--
Formation Script shell Linux ou Windows avec cygwin : http://formation.1g6.biz/content/view/13/37/

Reply

Marsh Posté le 21-01-2006 à 21:46:30    

@echo off
rem récupération de tous les fichiers présents sur la sauvegarde
for /r "C:\chemin de la sauvegarde" %%a in (*.*) do call :command "%%a"
 
 
:command
set fichier=%~1
if "%fichier%" equ "" goto eof
rem réduire à l'arborescence commune entre la sauvegarde et les originaux
set fichier=%fichier:C:\chemin de la sauvegarde\=%
if not exist "C:\Mes documents à sauvegarder\%fichier%" del "C:\chemin de la sauvegarde\%fichier%"
 
Ce script compare la sauvegarde avec les originaux et supprime ceux qui se trouvent sur la sauvegarde et sont absents des originaux.
Il faut le compléter avec une commande qui supprimera les répertoires éventuellement vides.
 

Reply

Marsh Posté le 03-02-2006 à 14:11:00    

Dans le ressource kit de Microsoft il y a un utilitaire qui s'appel robocopy et qui fonction mieux de xcopy.

Reply

Sujets relatifs:

Leave a Replay

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