Архивы
Скрипт для копирования файлов с проверкой и записью в лог-файл
Четверг, 1 ноября 2012 г.Рубрика: В помощь сисадмину
Просмотров: 91723
Подписаться на комментарии по RSS
Скрипт для копирования файлов с проверкой и записью в лог-файл
на базе утилит robocopy.robocopy (от англ. Robust File Copy) — утилита командной строки для репликации (не просто копирования) каталогов (папок). Она была доступна как часть Windows Resource Kit и представлена как стандартный компонент Windows Vista, Windows 7 и Windows Server 2008.
Что выполняет скрипт:
- копирует файлы из заданной папки;
- с введение лога, пишим имена скопированных файлов;
- и перед следующим копированием сверяем с записью в логах, если есть файл в логах - то его не копируем, если в логах отсутствует - копируем.
:: ( кодировка Dos 866 если имеется названия папок по русски )
@Echo off
:: ( путь откуда, без кавычек)
set $from=_ПУТЬ_ОТКУДА_
:: ( куда, без кавычек )
set $dest=_КУДА_
::
set $log=_ПУТЬ_ЛОГ_ФАЙЛА\copyfile.log
for /f "delims=" %%i in ('dir "%$from%" /B/A:-D') do Call :CheckLog "%%i"
:CheckLog
If Exist "%$log%" For /f "delims=" %%a in (%$log%) Do If "%%a"=="%~1" Exit /B
robocopy "%$from%" "%$dest%" "%~1" /minage:0
if %errorlevel%==1 (echo.Copy is successful - %~1&echo.%~1>>"%$log%")
/MINAGE:n :: Минимальный возраст файла — исключить файлы, возраст которых менее n дней.
p.s в Windows XP ее нету, надо ставить пакет
p.s.s Утилита robocopy это отличнейшая вещь, очень гибкий инструмент копирования и бэкапа. Вот не больший пример для backup