Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
Supprimer ancien dossier de sauvegarde ou le renommer
Auteur Message
Répondre en citant
Message Supprimer ancien dossier de sauvegarde ou le renommer 
Bonjour,

Afin de palier aux faiblesses de Windows (plantage, écran bleu, etc, etc) j'ai décidé de faire une sauvegarde de temps en temps.
Avec le code qui suit, un peu archaïque mais qui fonctionne.
Y a t-il un moyen d'améliorer ce code, plus rapide, plus simple ou plus cohérent ??

Code:

@echo off
SET D=%DATE%
SET DA=%D:/=-%
ECHO %DA%

XCOPY C:\Users\JC\Downloads   G:\"Sauvegarde du %DA%"\Downloads/E /H /R /Y /I /D
XCOPY D:\administration            G:\"Sauvegarde du %DA%"\administration/E /H /R /Y /I /D
XCOPY D:\Documents                G:\"Sauvegarde du %DA%"\Documents/E /H /R /Y /I /D
XCOPY D:\Excel                        G:\"Sauvegarde du %DA%"\Excel/E /H /R /Y /I /D
XCOPY D:\"Fichiers Outlook"      G:\"Sauvegarde du %DA%"\"Fichiers Outlook"/E /H /R /Y /I /D
XCOPY D:\Musique                   G:\"Sauvegarde du %DA%"\Musique/E /H /R /Y /I /D
XCOPY D:\Images                   G:\"Sauvegarde du %DA%"\Images/E /H /R /Y /I /D
XCOPY E:\*.*                         G:\"Sauvegarde du %DA%"\Partage/E /R /Y /I /D

echo la sauvegarde du  %DA%  est terminée !
pause


Merci et bon après-midi



Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message Supprimer ancien dossier de sauvegarde ou le renommer 
Hello,

ton code est très bien comme ça Okay
il n'y a pas vraiment d'occurence, tu ne gagneras pas une ligne avec une boucle FOR et ça va compliquer la lecture !

Si toutefois tu avais tous tes dossiers dans le meme chemin, par exemple %USERPROFILE%, tu pourrais envisage de "simplifier" comme ceci:

Code:

@echo off

SET DA=%date:~0,2%-%date:~3,2%-%date:~6,4%

for %%$ in (
   Downloads
   administration
   Documents
   Excel
   Outlook
   Musique
   Images
   Partage
   ) do xcopy %USERPROFILE%\%%$ G:\"Sauvegarde du %DA%"\%%$ /E /H /R /Y /I /D

echo la sauvegarde du  %DA%  est terminée !
pause


Bonne journée ami batcheur Wink




______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message Supprimer ancien dossier de sauvegarde ou le renommer 
Bonjour stryk,

Merci pour ton analyse et pour ta proposition de code qui hélas ne convient pas pour ma machine.

Le seul petit problème que je vois dans mon code, c'est qu'à chaque sauvegarde, j'ai un nouveau dossier qui se crée.
J'ai tenté un script pour supprimer le plus ancien après la sauvegarde mais y a comme un problème.
Je te soumets le code en question mais sil faut que je fasse un nouveau sujet, y a pas de problème Smile

J'ai testé deux syntaxes différentes d’où TEST 1 et TEST 2.

Pour info, le dossier à purger (supprimer) s'appelle "Sauvegarde du ??-??-2018"

Code:
@echo off
cls

rem VARIABLES / CONSTANTES :
rem ————————————————————

rem Cette variable  définie le dossier qu’il faut purger :
set chemin= "G:\"

rem Cette variable définie le nombre de jour que doivent être garder les fichiers:
set jours=1

rem ————————————————————
rem supprime et affiche les dossiers qui ont été supprimé

TEST 1     ForFiles /P %chemin% /D -%jours% /C "CMD /C if @isdir == TRUE echo @FILE &RD /Q /S @FILE"

TEST 2     Forfiles /p %chemin% /S /D -%jours% /C "Cmd /C If @isdir==TRUE echo @FILE &RD /Q /S @FILE"


pause





Le message d'erreur:

Code:
Erreur : Argument ou option non valide - « @isdir==TRUE ».
Entrez "FORFILES /?" pour afficher la syntaxe.
Appuyez sur une touche pour continuer...



Merci à toi, à vous

Bon week-end



Répondre en citant
Message Supprimer ancien dossier de sauvegarde ou le renommer 
Hello,

Sinon, pourquoi ne pas tout simplement supprimer le dossier qui n'est pas à la date du jour ?
Par exemple un truc du style:
Code:

set TodayForm=%date:~0,2%-%date:~3,2%-%date:~6,4%
set "TodayBackup=Sauvegarde du %TodayForm%"
for /f "tokens=*" %%$ in ('dir /b /a:d ^| find "Sauvegarde du"') do if not "TodayBackup"==%%$ del /f /s %%$





______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Message Supprimer ancien dossier de sauvegarde ou le renommer 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch