var
appName =
"Local to Network Drive Backup Script"
;
var
appVersion =
"1.0.2"
;
var
appVersionDate =
"2008-10-22"
;
var
sourceDir =
"C:\\path\\to\\files\\to\\backup"
;
var
backupDir =
"C:\\path\\to\\backup\\folder"
;
var
numDaysSaved = 5;
var
out = WScript.StdOut;
var
fso = WScript.CreateObject(
"Scripting.FileSystemObject"
);
var
WshShell = WScript.CreateObject(
"WScript.Shell"
);
var
currentDateObj =
new
Date();
var
LOG_EVENT_SUCCESS = 0;
var
LOG_EVENT_ERROR = 1;
var
LOG_EVENT_WARNING = 2;
var
LOG_EVENT_INFORMATION = 4;
var
LOG_EVENT_AUDIT_SUCCESS = 8;
var
LOG_EVENT_AUDIT_FAILURE = 16;
out.WriteLine(
"==============================================================================="
);
out.WriteLine(
"\n "
+ appName +
"\n"
);
out.WriteLine(
" Version "
+ appVersion +
" -- "
+ appVersionDate);
out.WriteLine(
" Written by Matt Bertolini\n"
);
out.WriteLine(
" Script Directory: "
+ WScript.ScriptFullName);
out.WriteLine(
" Backing up files for date: "
+ dateToIsoString(currentDateObj));
out.WriteLine(
" Number of days to keep backups: "
+ numDaysSaved);
out.WriteLine(
" Directory being backed up: "
+ sourceDir);
out.WriteLine(
" Backing up to directory: "
+ backupDir);
out.WriteLine(
"\n===============================================================================\n"
);
backupFolder(sourceDir, backupDir);
deleteOldBackups(backupDir, numDaysSaved);
WScript.Quit(0);
function
deleteOldBackups(backupDir, numDaysSaved)
{
var
backupDirObj = fso.GetFolder(backupDir);
var
fc =
new
Enumerator(backupDirObj.SubFolders);
for
(; !fc.atEnd(); fc.moveNext())
{
var
folderName = fc.item().Name;
var
cutoffDateObj =
new
Date();
cutoffDateObj.setDate(currentDateObj.getDate() - numDaysSaved);
if
(fc.item().DateCreated < cutoffDateObj)
{
out.Write(
"Deleting backup "
+ folderName +
"... "
);
fso.DeleteFolder(fc.item(),
true
);
out.WriteLine(
"done"
);
WshShell.LogEvent(LOG_EVENT_SUCCESS, appName +
" - Old backup "
+ folderName +
" deleted successfully."
);
}
}
}
function
backupFolder(sourceDir, backupDir)
{
try
{
if
(fso.FolderExists(backupDir) ==
false
)
{
out.Write(
"Backup folder does not exist. Creating folder..."
);
fso.CreateFolder(backupDir);
out.WriteLine(
"done"
);
}
}
catch
(e)
{
out.WriteLine(
"Could not create backup folder."
);
WshShell.LogEvent(LOG_EVENT_ERROR, appName +
" - Could not create backup folder -- "
+ e);
}
try
{
out.Write(
"Creating folder for today\'s backup..."
);
backupDir = backupDir +
"\\"
+ dateToIsoString(currentDateObj);
fso.CreateFolder(backupDir);
out.WriteLine(
"done"
);
out.Write(
"Backing up files..."
);
fso.CopyFolder(sourceDir, backupDir);
out.WriteLine(
"done"
);
WshShell.LogEvent(LOG_EVENT_SUCCESS, appName +
" - "
+
"Backup successful."
);
}
catch
(e)
{
out.WriteLine(
"Backup failed."
);
WshShell.LogEvent(LOG_EVENT_ERROR, appName +
" - Backup failed -- "
+ e);
}
}
function
dateToIsoString(dateObj)
{
var
yearStr = dateObj.getYear().toString();
var
monthStr = (dateObj.getMonth() + 1).toString();
var
dayStr = dateObj.getDate().toString();
if
(monthStr.length == 1)
{
monthStr =
"0"
+ monthStr;
}
if
(dayStr.length == 1)
{
dayStr =
"0"
+ dayStr;
}
return
yearStr +
"-"
+ monthStr +
"-"
+ dayStr;
}