Архивирование измененных файлов

Архивирование происходит в winxp. Целевой каталог - d:\promauto-src. Для выполнения запустить:

D:\makebackup.bat 

Дата последнего запуска сохраняется в D:\promauto-src\makebackup.dat. Перед началом архивации скрипт считывает эту дату, сохраненную предыдущим запуском скрипта, и создает архив с файлами, измененными не позднее этой даты. Архив помещается в D:\cache\.

makebackup.bat

@echo off
 
set dir_local_cahce=d:\cache
rem set dir_external_cahce=h:\cache
 
rem Шаблон игнорирования
set ignore_files=*.~* *.dcu *.dsk *.ddp Thumbs.db visscada.ini
 
cd d:\
 
rem Получение дат и времени
set dtend=%date:~6,4%%date:~3,2%%date:~0,2%
 
set stime=%time:~0,2%%time:~3,2%
if "%time:~0,1%"==" " set stime=0%time:~1,1%%time:~3,2%
for /f "eol=# delims== tokens=1,2" %%i in (promauto-src\makebackup.dat) do (
    set %%i=%%j
)
 
 
echo Working from %dt% to %dtend%
set arcname=promauto-src_%dt%-%dtend%_%stime%_hp2
echo dt=%dtend%>promauto-src\makebackup.dat
 
rem Создание архива без сжатия с отбором файлов по дате
rar a -m0 -ta%dt% %arcname%.rar promauto-src
rar d %arcname% %ignore_files%
 
rem Распаковка во временную папку
md %arcname%.temp
move %arcname%.rar %arcname%.temp
cd %arcname%.temp
rar x %arcname%.rar
del /Q /S %arcname%.rar
 
rem Удаление ненужных папок
c:\cygwin\bin\find -depth -type d -iname ".hg" -exec rm -v -r {} ;
rem c:\cygwin\bin\find -depth -type d -iname "junky_dir" -exec rm -v -r {} ;
 
rem Удаление пустых папок
c:\cygwin\bin\find -depth -type d -empty -exec rmdir --ignore-fail-on-non-empty {} ;
 
rem Окончательное максимальное сжатие
rar a -m5 %arcname%.rar promauto-src
 
rem Удаление времменого каталога
move %arcname%.rar ..
cd ..
rmdir /S /Q %arcname%.temp
 
rem Копирование архива в места хранения
rem xcopy %arcname%.rar %dir_external_cahce%
md d:\cache
move %arcname%.rar %dir_local_cahce%
 
 
 
rem echo Putting archive to the ftp
rem ncftpput -u prom-auto prom-auto.jino.ru domains/prom-auto.ru/download/CACHE %arcname%