I want to use a batch file to make a backup regularly, every day. Consider these folders:
C:\game folder
D:\backup1
D:\backup2
D:\backup3
D:\backup4
D:\backup5
There are inside game folder:
c:\game folder\remote\ »Folder
c:\game folder\remote\remotecache.vdf ».vdf file
c:\game folder\remote\FullProfile »No extension file
c:\game folder\remote\ProfileSaves\ »Folder
c:\game folder\remote\ProfileSaves\1054678 »No extension file
I need a batch file that
- verifies if time stamp on
backup1
(either folder or any file inside it) is older than 1 day and if YES then continue, else stop; - deletes
backup5
folder or its contents; copies folders/files ofbackup4
tobackup5
folder; - deletes
backup4
folder or its contents; copies folders/files ofbackup3
tobackup4
folder; - etc. up to
backup1
folder. - Finally copies game folder to
backup1
folder.
Is it possible?
My idea is to run a scheduled task (Windows), and the .bat file verifies if backup is needed or not by using time stamp of backup1
or any file inside it, comparing with actual date and checking if backup1
is older than one day.
Considering the code below, what should I place in order to make it works as I've described before?
@echo off
echo
echo ------------------------------------------------------------------
echo Daily script that backs-up game folder
echo ------------------------------------------------------------------
echo ------------------------------------------------------------------
echo Calculation of date
for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find "."') do set "dt=%%a"
set "YY=%dt:~2,2%"
set "YYYY=%dt:~0,4%"
set "MM=%dt:~4,2%"
set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%"
set "Min=%dt:~10,2%"
set "Sec=%dt:~12,2%"
set datestamp=%YYYY%%MM%%DD%
set timestamp=%HH%%Min%%Sec%
set fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%
How to make some kind of IF here to check time stamp of backup1
folder and if it's older than 1 day run the code below? And how to set the @path
?
echo ------------------------------------------------------------------
echo Delete old backup folder
FORFILES -p "" /D -1 /C "cmd /c IF @isdir == TRUE rd /S /Q @path"
echo ------------------------------------------------------------------
echo Make new Backup folder
md D:\Backup1
echo ------------------------------------------------------------------
echo Copy files into backup folder
xcopy /s /y "C:\game folder" "D:\Backup1"