Оригинальное название статьи - 'Backup/Copy Files that are "In Use" or "Locked" in Windows'.
Если Вы когда-то пробовали скопировать файл, который используется другим приложением, Вы могли видеть сообщение об ошибке типа "The process cannot access the file because another process has locked a portion of the file". Начиная с Windows XP, поддерживается технология Volume Shadow Copy (в русской версии соответствующий сервис называется "Теневое копирование тома"), которая используется для реализации фич Previous versions ("Предыдущие версии") в Vista, System Restore ("Восстановление системы") и бекапов. Суть в том, что создается временный "снимок" файла или раздела, а затем приложению дается возможность чтения этого "снимка", даже если другие приложения читают или даже модифицируют данный файл. Одна из полезных утилит, которая использует технологию Volume Shadow Copy, называется HoboCopy. Для ее работы должен также быть запущен сервис "Microsoft Software Shadow Copy Provider".
Копиривание одного файла
Ситнаксис командной строки:
hobocopy c:\directoryname\ d:\backupdirectory\
Например, если мы хотим скопировать файл c:\users\vasya\mail\outlook.pst в d:\backups\outlook.pst, то команда будет следующая:
C:\>hobocopy c:\users\vasya\mail\ d:\backups\Outlook.pst HoboCopy (c) 2006 Wangdera Corporation. [email protected] Starting a full copy from c:\users\vasya\mail to d:\backups\ Copied directory Backup successfully completed. Backup started at 2008-03-09 01:57:28, completed at 2008-03-09 01:58:39. 1 files (606.45 MB, 1 directories) copied, 7 files skipped
Копирование директории
Можно также скопировать сразу всю директорию, в этом случае нужно использовать опции /full, /r (рекурсивное копирование) и /y (не спрашивать подтверждения).
Пример:
hobocopy /full /skipdenied /y /r c:\users\vasya\ d:\backups\
Инкрементальное копирование
А для регулярного копирования целого раздела пригодятся опции /incremental (копировать только файлы, измененные с момента последнего полного копирования) и /statefile (указывается путь к файлу, содержащему служебную информацию о последнем бекапе).
Пример:
hobocopy /incremental /statefile=d:\lastbackup.dat /y /r c:\users\vasya\ d:\backups\
При первом запуске вместо /incremental следует использовать /full чтобы создался файл состояния.
Утилиту скачать можно здесь.
Не зря посетил Ваш блог, очень познавательно.
А что делать если в чертовом пути (в названиях папок, таких как: Documents and Settings или Local Settings) Есть пробелы? Чертова программа считает пробел началом новой команды!!!!
В кавычки пути брать не пробовали? То есть так:
hobocopy "c:\documents and settings\" d:\somedir\
Кто сталкивался с такой ошибкой?
There was a COM failure 0x80042308 - .\HoboCopy.cpp (349)
Если hobocopy не видит пробела, то заключите его в кавычки (а не весь путь). Documents" "and" "Settings.
блин, кавычки неправильно отобразились, короче обычные)
Ловите пример
@echo off
hobocopy /recursive /full /y %windir%\system32\config\ %systemdrive%\Backup\%date%\config\
hobocopy /y %systemdrive%\Docume~1\%username%\ %systemdrive%\Backup\%date%\%username%\
У меня hobocopy не понимает русские буквы(
Пытался скопировать файл, который лежал в папке с русскими буквами. Результат:
There was a COM failure 0x80042308 - HoboCopy.cpp (361)
А переименовать папку в латинские буквы - нельзя. Придется искать другие аналогичные утилиты.
hobocopy не стартует на winserver 2003 ,окошко сразу пропадает, vcredist установлен(
Артем, тут ничего дельного не подскажу, к сожалению, так как winserver 2003 никогда не использовал в работе.
Может, здесь что-то полезное найдете.
спасибо. тут на Win7 тоже самое оказывается , не пойму что не так. на хабре немного другой метод)