Архивиране / копиране на файлове, които са в употреба или заключени в Windows (команден ред)
Ако някога сте опитвали да копирате файл, който е заключен от друго приложение, вероятно сте видели съобщение за грешка, подобно на „Процесът няма достъп до файла, защото друг процес е заключил част от файла“. Как така да го копирате така или иначе?
След XP, Windows поддържа технология, наречена Volume Shadow Copy, която се използва за захранване на предишните версии във Vista, както и за System Restore и архивиране. Това, което прави, е да вземе временна снимка на файла или устройството и след това да позволи на приложението да чете от моментната снимка дори когато други приложения имат достъп или променят файла.
Това, което можем да направим, е да използваме помощната програма на командния ред HoboCopy, която използва тази услуга, за да копира файла.
Разбиране на предпоставките
HoboCopy и повечето други помощни програми за архивиране използват две услуги в Windows и трябва да проверите дали тези услуги не са деактивирани:
- Копие на теневият обем
- Доставчик на софтуер за копиране на снимки в Microsoft
Те могат да бъдат оставени като Ръчно стартиране, така че те не трябва да работят през цялото време. Hobocopy ще стартира двете услуги автоматично, когато е необходимо, и услугата Volume Shadow Copy ще бъде изключена след като бъде направена.
Използване на HoboCopy за архивиране / копиране на един файл
Синтаксисът е малко странен, защото HoboCopy е наистина предназначен да се използва за архивиране на цял набор от папки. Можем да я използваме, за да архивираме един файл, като подадем в аргумента filename в края.
Забележка: при Windows Vista ще трябва да стартирате командния ред на режима на администратор, като щракнете с десен бутон върху командния ред в стартовото меню и изберете Run as Administrator.
Синтаксис:
hobocopy c: \ t
Например искам да направя резервно копие на моя c: user geek mail Outlook.pst файл на d: backups Outlook.pst. Ето синтаксиса, който ще използвам:
C: hobocopy c: потребители geek mail d: backups Outlook.pst
HoboCopy (c) 2006 Wangdera Corporation. [email protected]
Стартиране на пълно копие от c: потребители geek mail to d: backups \ t
Копирана директория
Архивирането е завършено успешно.
Архивирането започна в 2008-03-09 01:57:28, завършено на 2008-03-09 01:58:39.
1 файл (606.45 MB, 1 директории) са копирани, 7 файла са пропуснати
Използване на HoboCopy за архивиране на цяла директория
Много по-полезна задача ще бъде да архивирате цялата си папка на потребителя, вероятно на външен твърд диск за съхранение. За това ще искаме да добавим няколко аргумента от командния ред.
/ пълен | Копирайте всички файлове |
/ skipdenied | Игнорирайте всички съобщения, на които е отказан достъп, поради грешки в позволението. |
/ г | Копирайте рекурсивно |
/ г | Не бързайте, просто копирайте всичко |
Синтаксис:
hobocopy / full / skipdenied / y / r c: име на директория \ t
Нека отидем със същия пример, искам да архивирам цялата си потребителска директория на d: backups, така че ще използвам тази команда:
hobocopy / пълно / skipdenied / г / г c: потребители иници \ t
Тази команда вероятно ще отнеме много време, за да завърши, така че може да искате да подремнете или нещо такова. В крайна сметка трябва да имате почти перфектно копие на директорията ... ако има някакви грешки в разрешението, ще бъдете предупредени за файлове, които не са копирани. Реално всички файлове в потребителската ви директория не трябва да имат този проблем.
Използване на HoboCopy за постепенно архивиране на устройство
Hobocopy също подкрепя архивирането на файловете постепенно, така че ще копира само файловете, които са се променили след последното архивиране. Това работи подобно на помощни програми като rsync, с изключение на това, че hobocopy съхранява последната дата на архивиране във файл, който трябва да посочите в командния ред.
/ Statefile = име | Този флаг указва файла, който съдържа последната информация за архива. |
/ частичното | Копирайте файлове, които са се променили след последното пълно копие. |
Синтаксис:
hobocopy / incremental / statefile = име на файл / y / r c: име на директория \ t
Пример:
hobocopy / incremental /statefile=d:uploadup.dat / y / r c: потребители geek d: backups \ t
Първият път, когато стартирате тази команда, ще трябва да използвате / full вместо / incremental, или иначе ще получите грешка, защото файлът на състоянието все още не е създаден. След това можете да стартирате инкременталното архивиране с / incremental switch.
Това ще бъде отличен начин за автоматично архивиране на набор от папки като част от планирана задача.
Изтеглете HoboCopy от sourceforge.net