@echo off

      ::[[-----> OneDrive Backup Batch Script <-----]]::


:: NOTE ::
::--------------------------------------

  :: The following need to be saved to: C:\ProgramData\Scripts\Robocopy
     :: NoShell-OneDrive.vbs
     :: OneDrive-Sync.bat
     :: OneDrive Folder Sync.xml



:: Paramaters ::
::--------------------------------------

  :: Logging ::

    :: Date:
       set date=%date:~0,4%%date:~5,2%%date:~8,2%

    :: Time:
       set dtime=%time:~0,2%%time:~3,2%.%time:~6,2%


  :: Directories ::

    :: Scripts:
       set Scripts=C:\ProgramData\Scripts\Robocopy

    :: OneDrive:
       set Source=C:\%USERNAME%\OneDrive

    :: Network Share:
       set Dest=\\FreeNAS\Backup\OneDrive

    :: Logs:
       set LogDir=%Dest%\Logs


  :: RoboCopy ::

    :: What:
       set what=/COPY:DAT /DCOPY:DAT /MIR /XD Logs /MOT:5 /MAXAGE:1

    :: Options:
       set options=/ZB /TBD

    :: Logging:
       set log=/V /ETA /NP /TS /LOG:"%LogDir%\%USERNAME%\%date%_%dtime%.log" /SAVE:%Scripts%\OneDrive-Backup



:: Commands ::
::--------------------------------------

  :: Ensure Hierarchy:
     mkdir %Scripts% %LogDir%


  :: Remove Logs >10 Days Old:
     forfiles -p %LogDir%  -d -10 -c "cmd /c del @path"


  :: RoboCopy Monitor
     robocopy %Source% %Dest% %what% %options% %log%
