Backup af registreringsdatabasen

For længe siden

Generelt

Hvis du har siddet med regedit.exe og lavet om i registreringsdatabasen og du så opdager at du har ændret et forkert sted, eller du er kommet til at slette nogle nøgler eller noget andet katastrofalt, ville du så ikke ønske, at du havde kunnet lave en backup af registreringsdatabasen før du gik igang?

Selvfølgelig kan du eksportere alle data fra registreringsdatabasen, eller du kan bruge programmet ERU.EXE, der er omtalt under tippet Førstehjælp. Problemet her bliver dog, at efter kort tids brug vil din registreringsdatabase fylde så meget, at det ikke vil være muligt at sikkerhedskopiere den på en enkelt diskette, og så er det man tænker, at det må være muligt at komprimere dataene.

Og det kan du! - Microsoft har lavet et program, der hedder CFGBACK.EXE, der desværre ikke er med i den danske version af Windows 95, men du kan da hente det ved at søge efter den på Microsofts web adresse. Så laver du en genvej til CFGBACK.EXE der, hvor du gerne vil kunne få fat i den (f.eks. i start menuens mappe "Systemværktøjer").

Som et lille eksempel kan anføres, at en sikkerhedskopi af registreringsdatabasen med eksport-metoden (der godt nok ligger lige for) fylder ca. 6 gange så meget som en sikkerhedskopi lavet med CFGBACK.

Vær opmærksom på, at selv om du skulle have den engelske/amerikanske udgave af Windows 95, skal du ikke bruge den CFGBACK.EXE, der ligger på CD'en, da grunden til, at den ikke kom med på flere CD'ere er, at der blev fundet fejl i programmet, der gør, at det nogle gange er umuligt lægge sikkerhedskopien tilbage igen, hvilket gjorde den knap så anvendelig. Den version af CFGBACK, som Microsoft har liggende til download skulle være blevet rettet, men hvis du selv har en smule forstand på "batch-programmering", kan du forholdsvis nemt lave din egen BAT fil til at sikkerhedskopiere registreringsdatabasen. Følg blot nedenstående vejledende eksempel: (BAT filen kræver at PKZIP ligger i søgestien ("path") og hvis du skal kunne bruge eksemplet direkte, skal Windows 95 være installeret i C:\WINDOWS)

Filnavn: REGBACK.BAT

@ECHO OFF

:KLAR

C:
CLS
IF '%1'=='' GOTO :VEJLEDNING
IF NOT EXIST C:\WINBAK\NUL MD C:\WINBAK

:CHECK

CD\WINBAK

IF NOT EXIST %1.ZIP              CHOICE Sikkerhedskopierer registreringsdatabase til %1.ZIP
IF EXIST %1.ZIP IF NOT '%1'=='#' CHOICE Retabler registreringsdatabase fra %1.ZIP
IF EXIST %1.ZIP IF '%1'=='#'     CHOICE Fortryd seneste retablering
IF ERRORLEVEL 2 GOTO :SLUT
IF ERRORLEVEL 1 GOTO :ARBEJDER

:ARBEJDER

ECHO Arbejder. Vent..

ATTRIB -S -H -R C:\WINDOWS\SYSTEM.DAT
ATTRIB -S -H -R C:\WINDOWS\USER.DAT

IF NOT EXIST %1.ZIP              GOTO :BACKUP
IF EXIST %1.ZIP IF NOT '%1'=='#' GOTO :RESTORE
IF EXIST %1.ZIP IF '%1'=='#'     GOTO :FORTRYD
GOTO :SLUT

:BACKUP

PKZIP %1 C:\WINDOWS\USER.DAT C:\WINDOWS\SYSTEM.DAT >NUL
GOTO :SNARTSLUT

:RESTORE

PKZIP # C:\WINDOWS\USER.DAT C:\WINDOWS\SYSTEM.DAT >NUL
CD\WINDOWS
PKUNZIP -o C:\WINBAK\%1 >NUL
GOTO :SNARTSLUT

:FORTRYD

CD\WINDOWS
PKUNZIP -o C:\WINBAK\# >NUL
GOTO :SNARTSLUT

:VEJLEDNING

ECHO Sikkerhedskopierer eller indlæser sikkerhedskopi af registreringsdatabasen
ECHO .
ECHO                    Skriv:  REGBACK filnavn
ECHO .
ECHO Hvor filnavnet er et gyldigt filnavn uden type (f.eks. 960901 eller SEPT96)
ECHO .
ECHO Hvis filnavn.ZIP ikke eksisterer, laves en ny backup med pågældende navn.
ECHO Hvis filnavn.ZIP eksisterer, retableres registreringsdatabasen fra den fil.
ECHO Hvis du skriver REGBACK # retableres registreringsdatabasen fra umiddelbart før sidste
ECHO retablering.
GOTO :SLUT


:SNARTSLUT

ATTRIB +S +H +R C:\WINDOWS\SYSTEM.DAT
ATTRIB +S +H +R C:\WINDOWS\USER.DAT

:SLUT
CD\
ECHO Afsluttet.

Se endvidere Genveje med parametre. - Denne sikkerhedskopiering virker kun hvis du ikke har sat Windows 95 op til at køre med brugerprofiler. Det kan du checke ved at vælge "Søg" på Start-menuen, vælge "Filer eller Mapper" og søge efter USER.DAT. Hvis Windows 95 finder USER.DAT i et underbibliotek (mappe) til \PROFILES, lad os sige den ligger i C:\WIN95\PROFILES\MATTHIAS, vil det være nødvendigt at tilpasse REGBACK.BAT en smule. I nedenstående eksempel er PKZIP endvidere placeret i biblioteket D:\UTIL, der ikke indgår i søgestien.

@ECHO OFF

:KLAR

C:
CLS
IF '%1'=='' GOTO :VEJLEDNING
IF NOT EXIST C:\WINBAK\NUL MD C:\WINBAK

:CHECK

CD\WINBAK

IF NOT EXIST %1.ZIP              CHOICE Sikkerhedskopierer registreringsdatabase til %1.ZIP
IF EXIST %1.ZIP IF NOT '%1'=='#' CHOICE Retabler registreringsdatabase fra %1.ZIP
IF EXIST %1.ZIP IF '%1'=='#'     CHOICE Fortryd seneste retablering
IF ERRORLEVEL 2 GOTO :SLUT
IF ERRORLEVEL 1 GOTO :ARBEJDER

:ARBEJDER

ECHO Arbejder. Vent..

ATTRIB -S -H -R C:\WIN95\SYSTEM.DAT
ATTRIB -S -H -R C:\WIN95\PROFILES\MATTHIAS\USER.DAT

IF NOT EXIST %1.ZIP              GOTO :BACKUP
IF EXIST %1.ZIP IF NOT '%1'=='#' GOTO :RESTORE
IF EXIST %1.ZIP IF '%1'=='#'     GOTO :FORTRYD
GOTO :SLUT

:BACKUP

D:\UTIL\PKZIP %1 C:\WIN95\PROFILES\MATTHIAS\USER.DAT C:\WIN95\SYSTEM.DAT >NUL
GOTO :SNARTSLUT

:RESTORE

D:\UTIL\PKZIP # C:\WIN95\PROFILES\MATTHIAS\USER.DAT C:\WIN95\SYSTEM.DAT >NUL
CD\WIN95
D:\UTIL\PKUNZIP -o C:\WINBAK\%1 SYSTEM.DAT >NUL
CD\WIN95\PROFILES\MATTHIAS
D:\UTIL\PKUNZIP -o C:\WINBAK\%1 USER.DAT >NUL
GOTO :SNARTSLUT

:FORTRYD

CD\WIN95
D:\UTIL\PKUNZIP -o C:\WINBAK\# SYSTEM.DAT>NUL
CD\WIN95\PROFILES\MATTHIAS
D:\UTIL\PKUNZIP -o C:\WINBAK\# USER.DAT >NUL
GOTO :SNARTSLUT

:VEJLEDNING

ECHO Sikkerhedskopierer eller indlæser sikkerhedskopi af registreringsdatabasen
ECHO .
ECHO                    Skriv:  REGBACK filnavn
ECHO .
ECHO Hvor filnavnet er et gyldigt filnavn uden type (f.eks. 960901 eller SEPT96)
ECHO .
ECHO Hvis filnavn.ZIP ikke eksisterer, laves en ny backup med pågældende navn.
ECHO Hvis filnavn.ZIP eksisterer, retableres registreringsdatabasen fra den fil.
ECHO Hvis du skriver REGBACK # retableres registreringsdatabasen fra umiddelbart før sidste
ECHO retablering.
GOTO :SLUT


:SNARTSLUT

ATTRIB +S +H +R C:\WIN95\SYSTEM.DAT
ATTRIB +S +H +R C:\WIN95\PROFILES\MATTHIAS\USER.DAT

:SLUT
CD\
ECHO Afsluttet.

Bruger kommentarer

Mahesh  
carlos AT cattassini DOT com DOT br
Can you explain what the If exist %1:\drvid.txt is for? Does this mean it only cpieos the information to drives that have that file?I copied the script, changed the backup code, and ran it, but it still didn't work.@echo offif %1.==. goto noparamsgoto drvid:noparamsfor %%a in (d e f g h i j k l m n o p q R s t u v w x y z) do call %0 %%a:drvidecho Checking if backup drive is mounted as drive %1:if exist %1:\drvid.txt goto foundgoto end:foundSet DRVID=%1echo Drive found as %DRVID%:USE: XCOPY C:\test %DRVID%:\test:endany suggestions?