'j@c mars 2003 'compare la base de registre avec une sauvegarde Set fs = CreateObject("Scripting.FileSystemObject") Set Sh = WScript.CreateObject("WScript.Shell") adr_svg="c:\svg_registres.txt" svg=false if not fs.fileexists(adr_svg) then svg=true else repons= msgbox("il existe une sauvegarde des bases de registre dans ""c:\svg_registres.txt""" & chr(10) & "voulez-vous comparer la base actuelle à cette sauvegarde ?",vbyesno,"base de registres") if repons=vbno then 'renommer le fichier de svg avant de sauvegarder adr_=adr_svg numer=0 do while fs.fileexists(adr_) numer=numer+1 adr_=replace(adr_svg,".txt",numer & ".txt") loop if msgbox("La sauvegarde de la base de registre va être actualisée" & chr(10) & "L'ancienne sauvegarde sera conservée (renommée)" & chr(10) & chr(10) & "Voulez-vous mettre à jour la sauvegarde ?",vbyesno,"base de registres")=vbno then wscript.quit fs.copyfile adr_svg,adr_ 'renommer svg=true end if end if if svg then 'sauvegarde de la base de registres sh.Run "%comspec% /c REGEDIT /E " & adr_svg,0,true msgbox "les bases de registres ont été enregistrées dans " & adr_svg wscript.quit end if nb_illis=0 alertt="" 'recopier les bases de registres dans un fichier texte sh.Run "%comspec% /c REGEDIT /E c:\rien.txt",0,true 'ouvrir le fichier texte en lecture erro=1 do while erro<>0 on error resume next Set fich = fs.OpenTextFile("c:\rien.txt", 1, False,True) 'le dernier paramètre permet d'ouvrir le fichier en ANSI 'dépend de la version de regedit erro= Err.Number loop on error goto 0 'créer un fichier pour afficher le résultat set resultat=fs.opentextfile("c:\rien_resultat.txt",2,true) 'ouvrir le fichier où est sauvegardée la base de registres Set fich_svg = fs.OpenTextFile(adr_svg, 1, False, True) 'le dernier paramètre permet d'ouvrir le fichier en ANSI 'dépend de la version de regedit 'parcourir le fichier sauvegarde ligne par ligne Do While not fich_svg.atEndOfStream and not fich.atEndOfStream txt_svg=fich_svg.readLine txt=fich.readLine 'titre if left(txt_svg,1)="[" then titre=txt_svg if txt_svg<>txt then '*****recherche du titre dans tout le fichier fich.close Set fich = fs.OpenTextFile("c:\rien.txt", 1, False) titreok=false do while not fich.atendofstream 'chercher le titre ds l'autre fichier txt=fich.readline if txt=titre then titreok=true exit do end if loop if not titreok then titreok=true alertt=alertt & chr(10) & titre & " a été supprimé" fich.close Set fich = fs.OpenTextFile("c:\rien.txt", 1, False) end if '****** end if titre=right(titre,len(titre)-1) titre=left(titre,instr(titre,"]")-1) & "\" 'remplace ] par \ txt_svg=fich_svg.readLine txt=fich.readLine end if 'fin de titre 'clé if left(txt_svg,1)="""" or txt<>txt_svg then 'clé***************** if left(txt_svg,1)="""" then cle=txt_svg cle=right(cle,len(cle)-1) 'retire guillemet gauche cle=left(cle,instr(cle,"""")-1) end if if left(txt_svg,1)="@" then cle="(Default)" 'comparaison clés if txt<>txt_svg then if titlecle<>titre & cle then resul=titre & cle & " = " val_lue="" on error resume next val_lue=sh.regread(titre & cle) on error goto 0 if isarray(val_lue) then result="" for nbarr=0 to ubound(val_lue) result=result & chr(10) & val_lue(nbarr) next val_lue=result end if resul=resul & val_lue if resul = titre & cle & " = " then erra=1 nb_illis=nb_illis+1 end if on error goto 0 if erra=0 then resultat.writeline resul end if titlecle=titre & cle end if end if 'fin de clé************************************** Loop fich.close fich_svg.close resultat.writeline "" resultat.writeline nb_illis & " clés illisibles" resultat.writeline "" resultat.writeline alertt resultat.close sh.run "c:\rien_resultat.txt" Set fich_svg=nothing Set fich=nothing Set fs=nothing set resultat=nothing set sh=nothing