rubezh-TWnlenfritplesuk

Резервное копирование проекта

В этой статье я расскажу про используемый мною скрипт для создания резервной копии папки с проектом.

Творить приходится и дома и на работе. Среда порою сильно отличается - на работе есть тот же RAR, а дома - его заменяет халявный 7Zip, да еще и версия, а так же битность различаются - отсюда и пути к exe-файлам разные. А периодически делать резервную копию наработанного материала, а уж тем более после значительных изменений - это золотое правило! Конечно сейчас многие используют современные технологии типа VСS (Version Control System) - Git, SVN, Mercurial и т.д. и будут меня забрасывать тухлыми помидорами - мол устарел ты батенька. Но для некоторых типов проектов, особенно с обилием бинарных файлов использование систем контроля версий не оправдано. Да и не каждый хочет свое творение выкладывать в общий доступ и не имеет возможности развернуть собственную VCS для хранения .

Предлагаемый мною батник самостоятельно вычисляет имя проекта - по имени папки, в которой проект находится, указывает дату и время создания копии и архивирует содержимое (исключая временные файлы и прочие архивы из содержания) в архив, расположенный в папке ..\backup.

Имеющийся архиватор определяется автоматически. Поддерживаются WinRAR и 7Zip.

Запускать файл следует из корневой папки проекта. Например, проект находится в папке d:\Projects\Custom\MyPrj1\ и имеет разветвленную структуру. Поместим в эту папку скрипт и запустим его, после его работы в папке d:\Projects\Custom\Backup\ будет создан архив, содержащий всю структуру каталогов проекта, с именем MyPrj1_YYYYmmDD-HHMMSS, где YYYY - год, mm - месяц, DD - день, HH - часы, MM - минуты, SS - секунды.

@echo off
cls
@echo Backup sources v1.1 by Mikhaltchenkov Dmitry
@echo.
setlocal enabledelayedexpansion
set arctype=rar
set arcparams=a -dh -r -x*.*log -x*.rar -x*.pdb -x*.idb -x*.tmp -x*.obj
set arcexe="%ProgramFiles%"\WinRAR\Rar.exe
if exist = %arcexe% goto backup
set arcexe="%ProgramFiles(x86)%"\WinRAR\Rar.exe
if exist = %arcexe% goto backup
set arcexe="%ProgramW6432%"\WinRAR\Rar.exe
if exist = %arcexe% goto backup
set arcparams=a -r -ssw
set arctype=zip
set arcexe="%ProgramFiles%"\7-Zip\7z.exe
if exist = %arcexe% goto backup
set arcexe="%ProgramFiles(x86)%"\7-Zip\7z.exe
if exist = %arcexe% goto backup
set arcexe="%ProgramW6432%"\7-Zip\7z.exe
if exist = %arcexe% goto backup

@echo "Ошибка! Не найден архиватор!!!"
pause 0
goto end
:backup

set hour=%time:~0,2%
if "%hour:~0,1%" == " " set hour=0%hour:~1,1%
set min=%time:~3,2%
if "%min:~0,1%" == " " set min=0%min:~1,1%
set secs=%time:~6,2%
if "%secs:~0,1%" == " " set secs=0%secs:~1,1%

set d=%date:~0,2%
set m=%date:~3,2%
set y=%date:~6,4%
set arch_date=%y%%m%%d%-%hour%%min%%secs%

rem echo %arch_date%

set name=%cd%
pushd ..
rem cd ..
rem @echo !name:%cd%\=!
set arcName=!name:%cd%\=!
popd

if not exist "..\backup" (
	mkdir "..\backup"
)
%arcexe% %arcparams% ..\backup\"%arcName%_"%arch_date%.%arctype% *.*

:end
endlocal
exit
1 1 1 1 1 1 1 1 1 1 Рейтинг 100%

Метки: cmd, backup

Печать E-mail

Добавить комментарий


Защитный код
Обновить