Aller au contenu

Expert en .bat, man ?


Alf

Messages recommandés

Bonjour à tous,

 

Petite question aujourd'hui qui n'a rien à voir avec notre navigateur préféré. Je souhaiterais exporter automatiquement chaque jour une entrée de base de registre (jusque là tout va bien) mais je souhaiterais garder un historique de ces sauvegardes.

Je pensais donc trouver un moyen automatique de renommer chaque jour ce fichier exporté avec la date du jour par exemple ... et là, impossible de renommer un fichier en y ajoutant la variable date.

 

Voilà ce que contient mon .bat pour l'instant :

 

reg export "HKEY_LOCAL_MACHINE\SOFTWARE\test" c:\test.reg
Ren c:\test.reg "c:\test %date%  .reg"

 

Je ne sais comment placer et utiliser la variable date.

 

Merci d'avance ;)

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à tous,

 

Petite question aujourd'hui qui n'a rien à voir avec notre navigateur préféré. Je souhaiterais exporter automatiquement chaque jour une entrée de base de registre (jusque là tout va bien) mais je souhaiterais garder un historique de ces sauvegardes.

Je pensais donc trouver un moyen automatique de renommer chaque jour ce fichier exporté avec la date du jour par exemple ... et là, impossible de renommer un fichier en y ajoutant la variable date.

 

Voilà ce que contient mon .bat pour l'instant :

 

reg export "HKEY_LOCAL_MACHINE\SOFTWARE\test" c:\test.reg
Ren c:\test.reg "c:\test %date%  .reg"

 

Je ne sais comment placer et utiliser la variable date.

 

Merci d'avance ;)

 

Hello Alf,

 

le problème est que la variable %date% retourne : 06/02/2009 , on ne peut pas utiliser / dans un nom de fichier !

 

un exemple de code sur les dates:

 

@echo off
:: get current date/time into vars
:: vars= day month year hour mins secs mili

for /f "tokens=1* delims= " %%a in ('date/t') do set dayname=%%a
for /f "tokens=1* delims= " %%a in ('date/t') do set mmddyyyy=%%a
for /f "tokens=1* delims=/" %%a in ('echo %mmddyyyy%') do set day=%%a
for /f "tokens=2* delims=/" %%a in ('echo %mmddyyyy%') do set month=%%a
for /f "tokens=3* delims=/" %%a in ('echo %mmddyyyy%') do set year=%%a
for /f "tokens=1* delims=:" %%a in ('echo %time%') do set hour=%%a
for /f "tokens=2* delims=:" %%a in ('echo %time%') do set mins=%%a
for /f "tokens=3* delims=:" %%a in ('echo %time%') do set sec=%%a
for /f "tokens=1* delims=." %%a in ('echo %sec%') do set secs=%%a
for /f "tokens=2* delims=." %%a in ('echo %sec%') do set mili=%%a

echo day =%day%
echo month=%month%
echo year =%year%
echo hour =%hour%
echo mins =%mins%
echo secs =%secs%
echo mili =%mili%

Lien vers le commentaire
Partager sur d’autres sites

Arf ... et personne connaitrait une variable que je peux intégrer à un nom pour qu'il soit différent chaque jour ?

Ou alors, un petit freeware qui va bien ? Genre un logiciel de backup de base de registre ?

Lien vers le commentaire
Partager sur d’autres sites

Alf ,

 

puisque tu ne souhaites pas chercher , ci-joint du clé en main !!

 

@echo off
reg export "HKEY_LOCAL_MACHINE\SOFTWARE\test" c:\test.reg
for /f "tokens=1* delims= " %%a in ('date/t') do set mmddyyyy=%%a
for /f "tokens=1* delims=/" %%a in ('echo %mmddyyyy%') do set day=%%a
for /f "tokens=2* delims=/" %%a in ('echo %mmddyyyy%') do set month=%%a
for /f "tokens=3* delims=/" %%a in ('echo %mmddyyyy%') do set year=%%a
copy c:\test.reg c:\test%day%%month%%year%.reg

 

ou plus propre :

 

@echo off
for /f "tokens=1* delims= " %%a in ('date/t') do set mmddyyyy=%%a
for /f "tokens=1* delims=/" %%a in ('echo %mmddyyyy%') do set day=%%a
for /f "tokens=2* delims=/" %%a in ('echo %mmddyyyy%') do set month=%%a
for /f "tokens=3* delims=/" %%a in ('echo %mmddyyyy%') do set year=%%a
reg export "HKEY_LOCAL_MACHINE\SOFTWARE\test" c:\test%day%%month%%year%.reg

Lien vers le commentaire
Partager sur d’autres sites

;) Je ne pensais pas que c'était si compliqué. Je suis loin d'être un expert en dos & .bat (surement dû à l'âge ;) ) et je te remercie beaucoup.

Je testerai ça au plus vite.

Lien vers le commentaire
Partager sur d’autres sites

Moi je fais comme ca:

SET Filename=Test_%date:~6,4%%date:~3,2%%date:~0,2%-%time:~0,2%%time:~3,2%
reg export "HKEY_LOCAL_MACHINE\SOFTWARE\test" %Filename%.reg

la sortie sera du type : Test_AAAAMMJJ-HHSS.reg

 

Pour un Format FR:

SET Filename=Test_%date:~0,2%%date:~3,2%%date:~6,4%_%time:~0,2%%time:~3,2%
reg export "HKEY_LOCAL_MACHINE\SOFTWARE\test" %Filename%.reg

la sortie sera du type : Test_JJMMAAAA-HHSS.reg

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.