Vraag Simpel backup batchfile met history

erikdenhouter

Vaak hier
Dit batchbestand kan ingezet worden om een backup te maken van een hele map, en daarbij de vorige 2 backups gemaakt te bewaren. Een soort geschiedenis dus.
Het is basaal, en zal misschien niet in elke situatie 100% slagen, maar werkt het eenmaal, dan werkt het.
Er is een 'user defined area', waarin je de paden voor bron en doel kan aangeven, de naam van de BU map, en ook of je 2 of 3 backups wil hebben.
Je moet dus het batchbestand zelf editten. Daarvoor rechtsklik je het en kiest voor 'Bewerken'. Kladblok moet het dan als vanzelf openen.
Daarna kan je het onder elke gewenste naam opslaan, zolang het de extensie .bat behoud. Zo kan je er eventueel meerdere van inrichten.
Na een juiste invulling dubbelklik je het, en het wordt direct uitgevoerd, en het pauzeert na afloop om even de backup(s) in de doelmap te laten zien.

Waar je op moet letten:
er zijn 4 user defined parameters in te vullen.

S-FOLDER het pad en naam van de bronmap
T-FOLDER het pad en naam van de doelmap (daar waar de BU mappen komen te staan)
T-NAME de naam van de BU mappen zelf. Er wordt -1, -2, of -3 aan toegevoegd.
BU-AMOUNT bepaalt of je 2 of 3 BU's wilt. Alleen 2 of 3 is toegestaan.

! Echt belangrijk is het dat bij het invullen van die vier parameters er GEEN spaties aan het eind of begin staan.

Het bachbestand zelf, kopieer en plak de tekst in een Kladblokje:

Code:
@ECHO OFF

rem  Batchfile to make backup of a folder with a history of 1 or 2, so
rem  a total of 2 or 3 folders will remain after every use.
rem  Make sure that folders are not set 'hidden'.

rem   User defined explaned:
rem   S-FOLDER     Source folder
rem   T-FOLDER     Target folder
rem   T-NAME       Name of BU folder in target folder. Wil get the suffix -1, -2 (and -3)
rem   BU-AMOUNT    You can have 2 or 3 backups (BU with history of 1 or 2)

rem  ! Make sure there are no spaces in front or at the end of the parameter !

rem ------------------------  Erik den Houter  ------------------------------

rem 00000000000000000000000000000000000000000000000000000000
rem 0000000000       User defined area       00000000000000

SET S-FOLDER=C:\Users\Ikke\AppData\Roaming\Thunderbird
SET T-FOLDER=H:\Mozil-BU
SET T-NAME=THU_BU
SET BU-AMOUNT=3

rem 0000000000    END user defined area END  00000000000000
rem 00000000000000000000000000000000000000000000000000000000


IF NOT EXIST "%T-FOLDER%" GOTO WRONG_PATH
SET T_ENV=12345
IF NOT %T_ENV%'==12345' GOTO NO_ENV

IF %BU-AMOUNT%'==2' GOTO 2-BU
IF NOT %BU-AMOUNT%'==3' GOTO AMOUNTERR
IF EXIST "%T-FOLDER%\%T-NAME%-3" RD /S /Q "%T-FOLDER%\%T-NAME%-3"
IF EXIST "%T-FOLDER%\%T-NAME%-2" MOVE /Y "%T-FOLDER%\%T-NAME%-2" "%T-FOLDER%\%T-NAME%-3"
GOTO 3-BU

:2-BU
IF EXIST "%T-FOLDER%\%T-NAME%-2" RD /S /Q "%T-FOLDER%\%T-NAME%-2"

:3-BU
IF EXIST "%T-FOLDER%\%T-NAME%-1" MOVE /Y "%T-FOLDER%\%T-NAME%-1" "%T-FOLDER%\%T-NAME%-2"

ECHO.
ECHO BACKUP one entire folder,
ECHO.
ECHO   from:  %S-FOLDER%\*.*
ECHO     to:  %T-FOLDER%\%T-NAME%-1
ECHO.
ECHO  Start to copy files....
ECHO.
MD "%T-FOLDER%\%T-NAME%-1"
XCOPY /Y /C /E /H /K "%S-FOLDER%" "%T-FOLDER%\%T-NAME%-1"

ECHO.
ECHO Backup batchfile (%0)
ECHO.
ECHO DONE
ECHO.
ECHO If no errors occured, %T-FOLDER%\%T-NAME%-1  is created, and prior
ECHO versions of that folder have got higher numbers now (2 or 3).
ECHO.
ECHO Directory view of the target:
ECHO.
DIR "%T-FOLDER%\%T-NAME%-*"
GOTO END

:WRONG_PATH
ECHO.
ECHO  Path to targetfolder could not be found...
ECHO ( %T-FOLDER% )
ECHO.
ECHO  Maybe the proper disk is not available ?
ECHO.
ECHO.
GOTO END

:AMOUNTERR
ECHO.
ECHO  The parameter in the userdefined area for the amount of BackUps is
ECHO  not correctly set. Only 2 or 3 is alowed.
ECHO  The value BU-AMOUNT is now >>>>%BU-AMOUNT%<<<<
ECHO.
ECHO  ! Make sure there are NO spaces ^in front or ^at the end of the parameter.
ECHO.
GOTO END

:NO_ENV
ECHO.
ECHO  The sub-system has not enough environment space to run this batchfile safely.
ECHO.
ECHO  Using shorter paths to source and target for backup could solve this.
ECHO.

:END
ECHO.
SET S-FOLDER=
SET T-FOLDER=
SET T-NAME=
SET BU-AMOUNT=

PAUSE
Ik zelf heb het lang gebruikt om de hele profielmap van Firefox en Thunderbird (+mail) zo eens per maand met één dubbelklik weg te zetten. De oude BU No 1 wordt hernoemd in No 2 etc., en een nieuwe BU No 1 wordt er naast gezet.

Dit is een resultaat, maar let niet op datums:

BU_batchbestand.jpg
 
Laatst bewerkt:
Bovenaan Onderaan