johnswaine
asked on
Vbscript - How to exclude a subdirectory from a log file backup
I have the script below that backs up certain log files once a day. Currently it backs up the following directory in its entirety (c:\Dolphin\FSDev\FSPro\Li ve Site\). Within this directory there are seven subdirectories one of which i wish to exclude from the backup. Could someone possibly give me some pointers as to how to approach this as i am a vb novice and my google searches have drawn a blank.
Thanks in advance
Thanks in advance
<job id="main">
<script language="VBScript">
Dim strFilePath
Dim strdest
Dim objFSO
Dim objFileCopy
Dim dayToCompare
' dayToCompare = CDate("1")
'MsgBox dayToCompare
strdest = "\\matrix2\IBELogs\"
strComputer = "."
'display computer name
Set WshNetwork = WScript.CreateObject("WScript.Network")
'WScript.Echo(WshNetwork.ComputerName)
'To do with windows service
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objFSO = CreateObject("Scripting.FileSystemObject")
'Get the folder directory
Set objFolder = objFSO.GetFolder("C:\Dolphin\FSDev\FSPro\Live Site\DataSourceLogfiles")
'Get the subfolder collection for the directory
Set colSubfolders = objFolder.Subfolders
Dim dateComparison
Dim dateToSaveFileAs
Dim folderNameArray
Dim currentFolderName
Dim newFolderName
Dim folderDate
Dim splitValue
Dim strYear
Dim strMonth
Dim strDay
Dim strHours
Dim strMinutes
Dim strSeconds
Dim strConcat
Dim lFileDateAndCurrentDateDiff
Set filesys = CreateObject("Scripting.FileSystemObject")
Set testfile= filesys.CreateTextFile("C:\ArchiveBatchFile\Logs\ArchiveEventLogFile.txt", True)
testfile.Write "File transfer from server" & " "& WshNetwork.ComputerName & " "& "started at" &" " & Date
For Each objSubfolder in colSubfolders
dateComparison = Date
'Gets the interval between date created and current dates.
lFileDateAndCurrentDateDiff = DateDiff("d",objSubfolder.DateCreated, dateComparison)
if lFileDateAndCurrentDateDiff = 1 Then
'Populate all the date variables requried
strYear = Year(objSubfolder.DateCreated)
strMonth = Pd(Month(objSubfolder.DateCreated),2)
strDay = Pd(Day(objSubfolder.DateCreated),2)
strHours = Pd(Hour(objSubfolder.DateCreated),2)
strMinutes = Pd(Minute(objSubfolder.DateCreated),2)
strSeconds = Pd(Second(objSubfolder.DateCreated),2)
' character to build string
strConcat = "-"
'convert and assign Folder Date to a variable for later use.
'folderDate = FormatDateTime(objSubfolder.DateCreated,2)
folderDate = strYear & strConcat & strMonth & strConcat & strDay & " " &_
strHours & strConcat & strMinutes & strConcat & strSeconds
'find and replace / to meet file naming conventions
folderDate = Replace(folderDate,"/","-")
splitValue = "_"
'assign the current folder name
currentFolderName = objSubfolder.Name
'split the current folder
folderNameArray = Split(currentFolderName, splitValue, -1, 1)
'Insert the created date into the split as we want to ensure that the folders creation
'date is retained
newFolderName = folderNameArray(0) & splitValue & folderDate & splitValue & folderNameArray(2)
'Copy to archive destination
objSubfolder.Copy(strdest & newFolderName)
objSubfolder.Delete
testfile.Write newFolderName & "successfully copied from computer" & " " & WshNetwork.ComputerName & vbCr & vbLf
'WScript.Echo newFolderName & "successfully copied from computer" & " " & WshNetwork.ComputerName
end if
Next
testfile.Write "File transfer from server" & " "& WshNetwork.ComputerName & " "& "finished at at" &" " & Date & vbCr & vbLf
testfile.Close
Function pd(n, totalDigits)
if totalDigits > len(n) then
pd = String(totalDigits-len(n),"0") & n
else
pd = n
end if
End Function
</script>
</job>
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
q
Open in new window