// Backup //Configuration Assign("Backup-continuous","300"); //minimal age of last backup in seconds for the continuous backup Assign("Backup-complete","7"); //minimal age of last backup in days for the complete backup //Read registry path for 7-zip executable LetReg(9, "%@('HKEY_CURRENT_USER','Software\7-Zip','Path');\7z.exe" ); //continuous backup (only tex files) GetDate(1, 'h','English'); GetDate(2, 'n','English'); GetDate(3, 's','English'); LetRegNum(4, %!1*60*60+%!2*60+%!3); IfFileExists("%P\Backup\Continuous\last","ReadFile('%P\Backup\Continuous\last',0);","JMP('dbackup');"); GetLength(1,'%!0'); IfNum(%!1,0,'=',"JMP('dbackup');"); LetRegNum(5, %!4-%!0); //calculate the age of last backup IfNum(%!5,0,'<',"JMP('dbackup');"); //if the "%!5"-variable is negative, go to backup IfNum(%!5,'%$("Backup-continuous")','<',"JMP('ddontbackup');"); // if the last backup is younger than "backup-continuous"-variable :dbackup:: GetDate(7, 'dddd, dd-mmmm-yyyy','English'); GetDate(8, 'hh"h"-nn"m"-ss"s"','English'); WinExe('','"%!9" a -t7z -m0=ppmd:o=11 "%P\Backup\Continuous\%!7\%!8.7z" -ir!"%P"\*.tex','%P','',10000); WriteFile( "%P\Backup\Continuous\last", "%!4" ); :ddontbackup:: //complete backup (everything, except the Backup-folder itself) GetDate(1, 'd','English'); GetDate(2, 'm','English'); LetRegNum(3, %!1+%!2*30); IfFileExists("%P\Backup\Complete\last","ReadFile('%P\Backup\Complete\last',0);","JMP('wbackup');"); GetLength(1,'%!0'); IfNum(%!1,0,'=',"JMP('wbackup');"); LetRegNum(5, %!3-%!0); //calculate the age of last backup IfNum(%!5,0,'<',"JMP('wbackup');"); //if the "%!5"-variable is negative, go to backup IfNum(%!5,'%$("Backup-complete")','<',"JMP('wdontbackup');"); // if the last backup is younger than "Backup-complete"-variable :wbackup:: GetDate(7, 'dd-mmmm-yyyy','English'); WinExe('','"%!9" a -t7z -mx9 "%P\Backup\Complete\%!7.7z" "%P" -xr!Backup','%P','',10000); WriteFile( "%P\Backup\Complete\last", "%!3" ); :wdontbackup:: //cleaning up Release("Backup-continuous"); Release("Backup-complete"); End;