Предположим, что вы хотите скопировать файл, который намертво заблокирован другой программой. В результате Windows нам радостно сообщит о том, что системный процесс не может получить доступа к файлу, поскольку последний заблокирован другим процессом. Как же тогда скопировать такой файл?

Что же мешает, собственно говоря, освободить файл, закрыв заблокировавшую его программу? Да ничего, но представьте, что вы настраиваете автоматическое резервное копирование файлов. Если файл заблокирован, то программа резервного копирования здесь не справится и нужный файл не будет скопирован. Вот тут-то и понадобится один рецепт, который представлен в этой статье.

заблокированный файл

Начиная с Windows XP операционная система от Microsoft поддерживает технологию теневого копирования (она же Volume Shadow Copy). Данная технология используется для резервного копирования данных и восстановления системы. В частности, теневая копия представляет собой временный “снимок” файла или раздела жесткого диска. При этом одна программа может получить доступ чтения именно к снимку, в то время как другие программы могут в это же время работать с файлом или изменять его.

Именно это нам и нужно – чтение занятого файла. И поможет нам в этом утилита для командной строки HoboCopy, предназначенная для резервного копирования файлов.

На следующей странице можно загрузить HoboCopy для Windows XP и Windows Vista/7 в версиях 32/64 бит:

Для работы HoboCopy (да и многих других программ для резервного копирования) нам надобятся две следующих службы Windows:

  • Теневое копирование тома
  • MS Software Shadow Copy Provider

Если вы забыли, где просмотреть службы, то в Windows 7 перейдите по пути Панель управления > Система и безопасность > Администрирование > Службы (а в Windows XP – Панель управления > Администрирование > Службы).

Убедитесь в том, что службы не отключены. Если для них указан режим запуска Вручную, то программа HoboCopy самостоятельно запустит эти службы, когда понадобится и отключит их по завершению своей работы.

Резервное копирование одного файла с помощью HoboCopy

Как вы помните, HoboCopy – утилита командной строки. К слову сказать, в Windows 7 и Windows Vista ее нужно запускать в режиме администратора, для чего щелкните на файле программы правой кнопкой мыши, выберите команду Свойства > Дополнительно и установите флажок Запуск от имени администратора. Также будет не лишним ознакомиться со статьей Запуск программ Windows 7 в режиме администратора.

Синтаксис команды выглядит следующим образом:

hobocopy c:\имя_папки\ d:\папка_копирования\ <имя_файла>

К примеру, мы решили скопировать файл c:\users\windata\mail\outlook.pst прямо вот сюда: d:\backups\outlook.pst.

Команда будет выглядеть следующим образом:

hobocopy c:\users\windata\mail\ d:\backups\ Outlook.pst

Резервное копирование каталога с помощью HoboCopy

Чем копировать по одному файлу, разумеется, куда лучше настроить резервное копирование целыми папками. Для этого нам понадобятся такие ключи:

  • /full – копирование всех файлов
  • /skipdenied – игнорировать любые сообщения ошибках, связанных с разрешением доступа
  • /r – рекурсивное копирование
  • /y – никаких запросов, копировать абсолютно все

Синтаксис команды следующий:

hobocopy /full /skipdenied /y /r c:\имя_папки\ d:\папка_копирования\

Например, используя предыдущий пример, скопируем всю пользовательскую папку в папку d:\backups\. Для этого нам понадобится такая команда:

hobocopy /full /skipdenied /y /r c:\users\windata\ d:\backups\

На копирование понадобится какое-то время, так что можно передохнуть, перекусить и потрещать вконтактике (шутка). Результатом станет полная копия всего каталога. Если при копировании были сообщения об ошибках, связанных с разрешением доступа, программа укажет на проблемные файлы.

Инкрементное копирование файлов с помощью HoboCopy

Утилита HoboCopy поддерживает и инкрементный тип копирования. Что это такое? Весьма полезная функция, она позволяет копировать только те файлы, что изменились с момента предыдущего резервного копирования. При этом последняя дата копирования хранится в файле, который вам нужно указать непосредственно в команде утилиты.

Для инкрементного копирования потребуются два ключа:

  • /statefile=имя_файла – это имя файла, в котором будут записаны данные о последнем копировании
  • /incremental – а это, как понятно из названия, ключ для инкрементного копирования

Синтаксис команды выглядит так:

hobocopy /incremental /statefile=имя_файла /y /r c:\имя_папки\ d:\папка_копирования\

Пример:

hobocopy /incremental /statefile=d:\lastbackup.dat /y /r c:\users\windata\ d:\backups\

Важно. При первом запуске программы необходимо указать ключ /full вместо /incremental, иначе будет выдано сообщение об ошибке, так как файл с данными о предыдущем состоянии еще не будет создан. А вот уже все последующие команды нужно указывать с ключом /incremental.

Таким образом, утилита HoboCopy позволяет настроить автоматическое копирование папок, для чего нужно лишь запланировать процедуру копирования. В Windows 7/Vista для этого используйте системную программу Планировщик заданий (Панель управления > Система и безопасность > Администрирование > Расписание выполнения задач), а в Windows XP – окно Назначенные задания (Панель управления > Назначенные задания).