# --------------------------------------------------------------------------
# Installation
#    All that's needed is two files:
#       - zcopy.exe
#       - zcopy.cfg (this file)
#
# Execution
#
#    The program is designed to always run in the
#    directory where zcopy.exe lives.  The zcopy
#    program may write a log file (zcopy.log) as
#    well as an html status/output file.  These
#    files are always written to the directory
#    containing zcopy.exe / zcopy.cfg.
#
#    To run the program:
#
#       zcopy.exe {theCfgFile}
#
#    If run without a cfg file name, zcopy.exe will
#    use the default name, 'zcopy.cfg'.
#
#    The behavior of zcopy.exe is determined
#    entirely by the contents of the .cfg file.
#
# Cfg File
#
#    The cfg file is stuctured like a windows .ini file:
#
#       [someSectionName]
#       someKey    = someValue
#       anotherKey = anotherValue
#
#       [anotherSectionName]
#       ...
#
#    Blank lines and lines beginning with '#' are ignored.
#
#    The cfg file must have an '[options]' section as
#    well as one or more '[entry]' sections.
#
#    Here's a full list of the [option] settings
#    along with their default values (if appropriate).
#
#       [options]
#       to           = {no default value}
#       update       = no
#       hidden       = yes
#       system       = yes
#       verbose      = no
#       force        = no
#       log          = yes
#       console      = yes
#       show_error   = yes
#       show_success = yes
#
#    All [options] settings are optional and can be omitted.
#    Here are descriptions of each setting:
#
#       to           -> the directory we'll be backing up to,
#                       needs to be an absolute path (i.e.
#                       c:\ or g:\backup)
#
#       update       -> if yes, only copy files that
#                       have changed since the last backup
#
#       hidden       -> if yes, copy hidden files and directories
#
#       system       -> if yes, copy system files and directories
#
#       verbose      -> if yes, write very detailed output
#                       about the program's progress and status
#
#       force        -> if yes, then only an out of disk space error
#                       stops us, any other errors we just report and
#                       continue onward
#
#       log          -> if yes, write any output to 'zcopy.log'
#
#       console      -> if yes, write output to console
#
#       show_error   -> if yes, pop-up html window on error
#
#       show_success -> if yes, pop-up html window on success
#
#     In addition to [options] we can have one or more
#     [entry] sections.  Each [entry] section sets up a
#     directory we want to copy from.  You can set up
#     as many [entry] sections as you want.
#
#     Here's a list of all [entry] settings:
#
#        [entry]
#        to      = {no default value}
#        from    = {no default value}
#        update  = {see below}
#        hidden  = {see below}
#        system  = {see below}
#        recurse = yes
#        exclude = {no default value}
#
#     Only 'from' is mandatory, all other settings
#     are optional.  Here are the setting descriptions.
#     Note that for all settings listed with [*] the
#     [options] value is used unless 
#
#       to           -> the directory we'll be backing up to,
#                       if not given, the 'to' setting from
#                       [options] will be used.
#
#       from         -> the directory we'll be backing up from,
#                       if 'from' was 'c:\stuff' and 'to' is
#                       'g:\files\backup', then we'll be backing up to:
#
#                          'g:\files\backup\c\stuff'
#
#       update       -> if given, this value overrides any value for
#                       update supplied in [options].
#
#       hidden       -> if given, this value overrides any value for
#                       hidden supplied in [options].
#
#       system       -> if given, this value overrides any value for
#                       system supplied in [options].
#
#
#       recurse      -> if yes, copy subdirectories of 'from'.
#
#       exclude      -> this setting can appear more than once, it
#                       specifies files or directories under 'from'
#                       that we do NOT want to copy.  Example:
#
#                          [entry]
#                          from = c:\
#                          exclude = c:\pagefile.sys
#
#                       Values for 'exclude' must be absolute paths.
#
# When setting up the .cfg file, the best way to start
# is from the command line.  Once you've got your .cfg file
# set up with your [options] and [entry] sections the way
# you want them, just run zcopy from the command line.
# Assume zcopy's installed to g:\backup\zcopy you'd do:
#
#    cd g:\backup
#    zcopy
#
# You should enable 'verbose' and 'console' while testing for
# maximum debugging capabilities.  Using 'force' is also advisable
# so you can get a full list of any files/directories that were
# not able to be backed up.  They'll look like this:
#
#    -- (Force Alert) -- Could not open: [f:\so-and-so\blah.txt] for reading
#
# Using those [ALERT] messages, you can tune your cfg file to
# omit problem files and directories (a typical example would be
# internet explorer's temporary internet files directory).
#
# Once you've got zcopy running and backing up everything you want,
# you'll want to schedule it to run every day, unattended.
#
# A good way to start is to set up your .cfg file to only
# back up a small directory.  You can then schedule zcopy
# to run in a few minutes (assume it's now 1:51 PM) ...
#
#    at 13:53 /interactive g:\backup\zcopy.exe
#
# Using /interactive is necessary to allow the program to
# pop-up the html status window.  Check zcopy.log and
# look for the html status window to determine if your
# at command ran successfully.
#
# Once this works, to schedule the backup to run every
# day at 3:00 AM ...
#
#    at 3:00 /interactive /every:M,T,W,Th,F,S,Su g:\backup\zcopy.exe
#
# This says to run zcopy at 3:00 am every day of the week
#
# --------------------------------------------------------------------------
[options]
   to           = z:\backup
   update       = no
   hidden       = yes
   system       = yes
   verbose      = yes
   force        = yes
   log          = yes
   console      = yes
   show_error   = yes
   show_success = yes
[entry]
   from   = v:\data
   to     = w:\save
   update = yes
[entry]
   from   = x:\important\files
   system = no
[entry]
   from    = y:\excel\year\2006
   recurse = no
   exclude = y:\excel\year\2006\old.files\save
   exclude = y:\excel\year\2006\largeFile1.xls
   exclude = y:\excel\year\2006\largeFile2.xls
                |