[Batch] compact. de bdd Access, date modif.

Fermé
spinetribal Messages postés 14 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 1 avril 2009 - 31 mars 2009 à 14:28
spinetribal Messages postés 14 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 1 avril 2009 - 1 avril 2009 à 12:13
Bonjour,

Il est tout d'abord à noter que je n'ai quasiment aucune connaissances en batch et que par conséquent la tâche me parait insurmontable =D

Je désirerai réaliser un script qui serait lancé chaque soir et aurait pour but de compacter toutes les bases access situées dans divers répertoires et sous répertoires situées sur mes serveurs, mais uniquement pour celles qui ont fait l'objet d'une modification dans la journée.

Pour le moment, j'ai réussi (en indiquant un répertoire unique cependant) à lister dans un fichier texte généré pour l'occasion les bases dont la date de modification correspond à la date du jour de cette manière :

CD /D E:\...
DIR *.mdb /o:n | find "%date%" | more > campagnesdujour.txt

ce que j'obtiens dans le .txt généré ressemble à cela :

30/03/09 14:37 675 840 aaa.mdb
30/03/09 14:58 3 371 008 bbb.mdb
30/03/09 14:59 87 851 008 ccc.mdb
30/03/09 14:59 14 094 336 ddd.mdb

Il y a donc la date et l'heure de la dernière modification, la taille en octets de la base et le nom de la base en elle-même.

Ce que j'espère pouvoir faire (et je ne sais comment) c'est utiliser cette liste afin de renseigner quelles bases sont à compacter (avec la fonction /compact donc).
Premièrement, cela est-il possible ? Ne faut-il pas supprimer toutes les infos précédant le nom de la base ? Puis-je générer le fichier avec uniquement le nom de la base sur chaque ligne ?
Comment utiliser par la suite ce fichier pour compacter mes bases et surtout, ma technique est-elle optimale ?

Enfin bref, que de questions auxquelles j'espère que vous aurez quelques réponses =)

Merci d'avance à tous !

2 réponses

cs-bilou Messages postés 769 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 164
31 mars 2009 à 17:44
Tien voila je tes fait un script:


@echo off
for %%i in (*.mdb) do (
for /f "tokens=1 delims= "  %%j in ("%%~ti") do (
if %date%==%%j (
COMMANDE
)
)
)
pause


A la place de COMMANDE tu met les commandes qu'il se passe si ton fichier a était modifier le jour d' aujourd'hui.

Bilou.
0
spinetribal Messages postés 14 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 1 avril 2009
1 avril 2009 à 12:13
Je te remercie de ton coup de main cs-bilou, je mets en place ton script et te donne des nouvelles !
0