' RUNS BEERSMITH AND BACKS UP BSMX FILES AFTER CLOSED
Set oShell = CreateObject("WScript.Shell")
' LOCATION OF BEERSMITH EXECUTABLE - USING SHORT FILES AVOIDS DOUBLE QUOTE NIGHTMARES
oShell.Run "C:\Progra~2\BeerSmith2\BeerSmith2.exe", 1, True
' GETS USERNAME TO USE IN DROPBOX LOCATION (DEFAULT)
set oNet = CreateObject("WScript.Network")
oUser = oNet.UserName
' GETS DATE AND TIME FOR USE IN BACKUP FILE NAME AND LOGFILE
sNow = Now()
sYear = Year(sNow)
sMonth = twoDigits(Month(sNow))
sDay = twoDigits(Day(sNow))
sHour = twoDigits(Hour(sNow))
sMinute = twoDigits(Minute(sNow))
sSecond = twoDigits(Second(sNow))
' FOLDER WHERE BEERSMITH IS INSTALLED
srcFolder = "C:\Progra~2\BeerSmith2"
' FILE EXTENSION(S) TO BACKUP
srcFiles = "*.bsmx"
' LOCATION OF 7-ZIP (DEFAULT)
zipExe = "C:\Progra~1\7-Zip\7z.exe"
' OPTIONS TO PASS TO 7-ZIP TO CREATE A ZIP FILE (MOST PORTABLE)
zipOptions = " a -tzip "
' FOLDER TO SAVE ZIP FILE
zipFolder = "C:\Users\" & oUser & "\Documents\MyDrop~1\BeerSmithBak"
' FILE NAME FOR ZIP FILE
zipFile = "BeerSmith2_" & sYear & sMonth & sDay & "-" & sHour & sMinute & sSecond & ".zip "
' LOG FILE NAME
logFile = "_log.txt"
Set oFSO = CreateObject("Scripting.FileSystemObject")
' IF BACKUP FOLDER (zipFolder) DOES NOT EXIST, THEN CREATE IT
If Not oFSO.FolderExists(zipFolder) Then
set oDest = oFSO.CreateFolder(zipFolder)
End If
' SET THE DESTINATION FOLDER TO zipFolder VARIABLE
Set oDest = oFSO.GetFolder(zipFolder)
' DESTINATION SHOULD BE A FOLDER BASED ON ABOVE, BUT JUST FOR GIGGLES, MAKE SURE THE DESTINATION IS A FOLDER
If oDest.Type = "File folder" Then
' CREATE OR OPEN THE LOG FILE FOR APPENDING
Set oWrite = oFSO.OpenTextFile(zipFolder & "\" & logFile, 8, True)
' CREATE THE ZIP FILE
Set oExec = oShell.Exec(zipExe & zipOptions & zipFolder & "\" & zipFile & srcFolder & "\" & srcFiles)
' WRITE THE FOLLOWING LINES TO THE LOG FILE FOR READABILITY/REFERENCE
oWrite.WriteLine "******************************"
oWrite.WriteLine sMonth & "/" & sDay & "/" & sYear & " " & sHour & ":" & sMinute & ":" & sSecond
oWrite.WriteLine "******************************"
oWrite.Write oExec.StdOut.ReadAll
oWrite.WriteBlankLines(1)
oWrite.WriteLine "******************************"
oWrite.WriteBlankLines(4)
End If
' CLOSE NICELY
Set oShell = Nothing
Set oDest = Nothing
Set oFSO = Nothing
' MAKE SURE THERE ARE TWO DIGITS IN THE MONTH, DAY, HOUR, MINUTE & SECONDS VARIABLES TO MAKE SORTING WORK RIGHT
Function twoDigits(iInput)
If iInput < 10 Then
twoDigits = "0" & iInput
Else
twoDigits = iInput
End If
End Function