Оригинальное название статьи - '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 чтобы создался файл состояния.
Утилиту скачать можно здесь.