Coup de main sur BACKUP - Shell/Batch - Programmation
Marsh Posté le 28-10-2004 à 19:27:08
bah dites donc, c'est la mode des backups en ce moment lol
bon dejà la commande 'date /T' marche pas sous 98, je viens d'essayer...va faloir trouver autre chose l'ami...
j'essaye qd meme de refechir à la question...
Marsh Posté le 28-10-2004 à 19:55:46
déjà merci de me répondre...
la volonté d'un batch vient de faire un truc simple sans install de logiciel...invisible pour l'utilisateur béta
Le plus important est que ça marche qqsoit l'O.S et la langue...
j'ai essayé la commande date histoire que les dossiers générés aient un sens.. au pire si pas moyen de jour ou de mois...tant pis j'userais d'un nom à la noix genre "SAUV_%n%"
est je voulais pas que si l'ordi démarre 5 fois dans la journée ça écrase 5 fois la sauvegarde du jour...
c'est la notion de compteur que j'arrive pas à implémenter, c'est peut être tout con, mais je répète : je suis tout noob en ce domaine...
mon premier essai était du genre:
if EXIST "%fDest%\lun" GOTO lundi
if EXIST "%fDest%\mar" GOTO mardi
if EXIST "%fDest%\mer" GOTO mercredi
if EXIST "%fDest%\jeu" GOTO jeudi
if EXIST "%fDest%\ven" GOTO vendredi
:lundi
xcopy /I /S /H /Q /Y %fSrc% %fDest%\lundi\
del "%fDest%\lun"
echo > %fDest%\mar
GOTO FIN
:mardi
xcopy /I /S /H /Q /Y %fSrc% %fDest%\mardi\
del "%fDest%\mar"
echo > %fDest%\mer
GOTO FIN
:mercredi
xcopy /I /S /H /Q /Y %fSrc% %fDest%\mercredi\
del "%fDest%\mer"
echo > %fDest%\jeu
GOTO FIN
:jeudi
xcopy /I /S /H /Q /Y %fSrc% %fDest%\jeudi\
del "%fDest%\jeu"
echo > %fDest%\ven
GOTO FIN
:vendredi
xcopy /I /S /H /Q /Y %fSrc% %fDest%\vendredi\
del "%fDest%\ven"
echo > %fDest%\lun
GOTO FIN
:FIN
REM - Fin du batch
j'attend tes idées avec impatience..
Marsh Posté le 04-11-2004 à 14:35:24
je fais un petit UP car j'ai vraiment besoin d'un coup de main..
merci à tous
Marsh Posté le 09-11-2004 à 15:07:28
sinon t'embete pas avec la date tu incrémente des n° et pis voila quitte a reboucler ton compteur ensuite tu gardes ke les plus gros n°... c facile a faire ca ...
Marsh Posté le 28-10-2004 à 18:27:39
Tout d'abord bonjour/bonsoir...
Voilà je débute en batch, j'ai bien pris le temps de parcourir le forum avant de me décider à poster...
je prend le temps de décrire désolé pour la "longueur" du post...
Le BUT:
je cherche un faire un batch qui serait installé sur des PC sous XP ET 98SE, de plus l'O.S est anglais ou français.. ça me facilite pas la tâche coté format de date....
Ce batch doit faire un Backup du dossier "toto" dans une autre partition (je pense pas que les chemins relatifs marchent..) donc je me débrouillerai pour avoir l'O.S dans C: (par défaut de toute façon) et la partition de sauvegarde dans E: (facile sous Xp de changer l'attribution de lettre, plus chiant apparement sous Win98SE, puisque je partionne APRES l'installation de l'O.S via Partition Magic (pc déjà pré-configurés))
dans le dossier de sauvegarde ( E:\BACKUP) je crée des sous-dossiers correspondant à une sauvegarde par mois (plus simple pour le FOR et TOKENS, le mois se trouvant au milieu du format, quitte à changer les "regional settings" pour que ça marche ... manuellement ou par une fichier reg pour HKCU>control panel>International
voyez mon fichier plus loin...
Mon soucis est de mettre une espèce de compteur qui me garde QUE les "n" dernières sauvegardes ( 3 par exemple) afin de ne pas remplir la partition....et là je sèche..je pensais soit un incrément de 1 est dès que la valeur "n" est atteinte faire un DEL complet de la directory BACKUP ou encore par comparaison de date...bref ne garder que les "n" derniers.
Soucis annexe: dans le format date je suis pas bien certain que le jour n'apparaisse pas sous 98 ce qui implique que la valeur "2" du TOKENS ne correspondrait plus au mois...(j'écris le batch sous XP), à moins que ça soit que la short date dans le paramètre DATE /T, je m'y perd un peu...
Voici mon Batch:
@echo off
cls
if not "%os%"=="Windows_NT" goto NextStep
REM --- Section spécifique à Windows NT ---
title Backup
color FC
:NextStep
set fSrc="C:\toto"
set fDest="E:\BACKUP"
if not exist %fDest% md %fDest
rem recuperation du mois en cours en format decimal
for /F "tokens=2 delims=/.,- " %%i in ('date /T') do set fMois=%%i
rem si le bakup a deja ete fait le mois en cours ne pas ecraser
if EXIST "%fDest%\Sauv_%fMois%.txt" GOTO FIN
rem sinon effectuer la sauvegarde
xcopy /I /S /H /Q /Y %fSrc% %fDest%\sauv_%fMois%\
echo > %fDest%\sauv_%fMois%.txt
GOTO FIN
:FIN
MERCI à ceux qui peuvent m'aider...et me faire comprendre.
Amicalement
Message édité par Lommag le 28-10-2004 à 19:57:19