Wilson WindowWare Tech Support

WinBatch WinBatch+Compiler WebBatch
Home | Tech Database | Tech BBS | White Papers | Purchase


Incremental backup based on archive bit

Keywords: 	 Incremental backup based on archive bit

;Incremental backup based on archive bit
;***************************************

;Set these variables as appropriate
SourcePath="C:\"
BackupPath="D:\Backup"
LogFile="C:\Temp\BackupList.txt"

#DefineFunction DirTree(Handle,CurrentDir,SourcePath,BackupPath,TotalFiles)
   DirChange(CurrentDir)
   If StrSub(CurrentDir,StrLen(CurrentDir),1)!="\" Then CurrentDir=StrCat(CurrentDir,"\")
   aStatusBar(1,"Total files processed: %TotalFiles%",CurrentDir,1,0)
   FileList=FileItemPath("*.*")
   FileCount=ItemCount(FileList,@TAB)
   For CountF=1 To FileCount
      TotalFiles=TotalFiles+1
      File=ItemExtract(CountF,FileList,@TAB)
      FileDate=FileTimeGetEx(File,3)
      Archive=(StrSub(FileAttrGet(File),2,1)=="A") ;Check archive bit
      If Archive
         FileSz=FileSizeEx(File)/1024.0
         FileWrite(Handle,StrCat(FileDate,"  ",StrFixLeft(FileSz," ",7)," KB  ",File))
         aFileCopy(File,StrReplace(File,SourcePath,BackupPath),4) ;Backup file
         FileAttrSet(File,"a") ;Reset archive bit
      EndIf
   Next
   SubDirs=DirItemize("*.*")
   DirCount=ItemCount(SubDirs,@TAB)
   For CountD=1 To DirCount
      SubDir=ItemExtract(CountD,SubDirs,@TAB)
      FullDir=StrCat(CurrentDir,SubDir,"\")       
      TotalFiles=DirTree(Handle,FullDir,SourcePath,BackupPath,TotalFiles)
   Next
   Return TotalFiles
#EndFunction

AddExtender("Wilx34i.dll") ;WIL Extender
Terminate(!DirExist(SourcePath),"Status","Invalid source path")
Terminate(!xDriveReady(StrSub(BackupPath,1,2)),"Status","Backup drive not ava1lable")
If !DirExist(BackupPath) Then DirMake(BackupPath)
aStatusBar(0,"Initializing...","",1,0)
Handle=FileOpen(LogFile,"Write")
TotalFiles=DirTree(Handle,SourcePath,SourcePath,BackupPath,0)
FileClose(Handle)
aStatusBar(2,"","",0,0)
Message("Status","Incremental backup finished.%@CRLF%Total files checked: %TotalFiles%")
Exit