Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: [решено] Комманда xcopy

Добрый день
Произвожу копирование данных с флешки ,на раздел жесткого диска (через cmd.exe) , все проходит успешно. Но при просмотре этих папок , они оказались пустыми , хотя в этих папках на флешке есть файлы
Флешка D (источник копирования) диск E ( получатель)


Эти файлы были скачаны на флешку ,при помощи download master, на роутере asus ac68u. OC Windows 7 Sp1
Ответ:
Цитата pybin1:
Произвожу копирование данных с флешки ,на раздел жесткого диска (через cmd.exe) , все проходит успешно. Но при просмотре этих папок , они оказались пустыми , хотя в этих папках на флешке есть файлы
А если так запустить? - xcopy d:\tmp e:/h/y/s/r
Вопрос: Копирование папки с использованием команды XCOPY с заменой одноимённых файлов в папке назначения

Всем привет как сделать написать бат который копировал бы папки с заменой файлов внутри папки
я написал так и добавил в планировщик заданий но при повторном запуске он спрашивает что делать с файлами внутри заменить, удалить или оставить, мне нужно заменять.

Windows Batch file
1
xcopy "C:\IRBIS64\Datai\KNIGI" "D:\becup\KNIGI"
Ответ:
Сообщение от sov44
казах, не ленитесь читать справку по командам, например xcopy /?
я не знаю где ее взять

Добавлено через 11 минут
Сообщение от казах
я не знаю где ее взять
извините, запарился в общем)))) решил вопрос))) всем спасибо
Вопрос: Вызов команды XCOPY из C#-проекта

Здравствуйте уважаемые форумчане! Из с# проекта вызывается команда Xcopy со следующими параметрами:
C#
1
startInfo.Arguments = """ + sorce + ""*.txt " + """ + fold + "" /H /Y /C /R /S";
В CMD это интерпретируется как:"G:"*.txt "C:\arc"/H /Y /C /R /S. По моему замыслу этот код должен копировать все файлы .тхт с диска G. На деле же он копирует не всё(почему-то). Копируются .txt файлы из корневого каталога(G), а также 2 папки, содержащие внутри себя .txt файлы. При добавлении в другие папки новых .txt файлов не копируются ни папкас файлом, ни сам файл.
Отсюда 3 вопроса:
1) как скопировать все .txt файлы с диска?
2) возможно ли за один вызов процедуры передать более одного расширения файла для копирования(подозреваю что нельзя)?
3)возможно ли копировать все .txt файлы с диска(включая файлы из скрытых директорий) отдельно от папок их содержащих?

Добавлено через 10 минут
CMD выдает следующее:
HTML5
1
http://prntscr.com/8z9ism
Как это исправить?

Добавлено через 4 часа 57 минут
Решение найдено! Xcopy ограничивает длину полного имени файла в 256 символов. Тему можно закрывать!
Ответ:
Сообщение от little dev
Xcopy ограничивает длину полного имени файла в 256 символов.
Это ограничивает операционная система, а не Xcopy.
Почитайте:
MSDN. Naming Files, Paths, and Namespaces
Вопрос: Копирование файлов с помощью команды XCOPY

не могу сделать копирование файлов по дате, при копировании пишет Недопустимый ключ - "/c:12.05"
Windows Batch file
1
2
3
4
5
echo off
set s=y:\*.rar
set c=%homedrive%\pd
mkdir "%y%" > nul 2>&1
xcopy  /c:%DATE:~0,5% && set yyyy=%DATE:~6,2%
Ответ:
Сообщение от evgeniy04
xcopy */c:%DATE:~0,5%
А Вы в консоли дайте команду:
Windows Batch file
1
xcopy /?
/C - Продолжение копирования вне зависимости от наличия ошибок.
естественно, будет ругаться на недопустимый ключ...
Вопрос: Команда XCOPY c параметром /D:mm-dd-yyyy не работает

Добрый день, есть код
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
echo off      
chcp 1251
cls  
echo Добро пожаловать!   
:CHOICE   
CLS  
ECHO Нажмите "1" Сцепление одноименных файлов
ECHO Нажмите "2" Дополнение файла %1, заданного аргументом  
ECHO Нажмите "3" Копирование файлов из текущего каталога в каталог, заданный аргументом %2 и созданных не раннее %3
ECHO Нажмите "4" Листинг
ECHO Нажмите "5" Выход
CHOICE /C 12345                                 
 
IF %ERRORLEVEL%==1 GOTO ONE   
IF %ERRORLEVEL%==2 GOTO TWO  
IF %ERRORLEVEL%==3 GOTO THREE  
IF %ERRORLEVEL%==4 GOTO FOUR  
IF %ERRORLEVEL%==5 GOTO EXIT  
 
:ONE  
@ECHO ON  
copy *.txt + *.ref *.doc          
@ECHO OFF  
pause  
GOTO CHOICE  
 
:TWO  
@ECHO ON  
copy con %1          
@ECHO OFF  
pause  
GOTO CHOICE  
 
:THREE  
@ECHO ON  
md e:\papka\%2  
xcopy *.* e:\papka\%2 /D:%3              
@ECHO OFF  
pause  
GOTO CHOICE  
 
:FOUR   
@ECHO ON  
dir e:\papka\%2 /P      
@ECHO OFF  
pause  
GOTO CHOICE  
:EXIT  
exit
В функции Three должно осуществляться копирование файлов по заданной пользователем дате, но идет вывод ошибки "недопустимый параметр: /D:24-11-2016"

Пример вводимых данных: xcopy *.* e:\papka\%2 /D:%3
Ответ: Nicekun,
Прочтите ваш же заголовок [Команда XCOPY c параметром /D:mm-dd-yyyy не работает]
вот и подумайте на досуге...
Вопрос: Копирование файла батником xcopy

Просто копирую файл
Windows Batch file
1
XCOPY D:\BACKUP\base.bak E:\BACKUP\*.* /Y
- норм...

Мне нужно не заменять файл в месте назначения..., добавить текущую дату к имени файла, например:
"01.01.2016_base.bak" или "2016.01.01_base.bak"
Как сделать?
Ответ: mostApi,
Windows Batch file
1
echo f|XCOPY D:\BACKUP\base.bak E:\BACKUP\%Date:~6,4%.%Date:~3,2%.%Date:~0,2%_base.bak /Y
Вопрос: Robocopy — описание и примеры использования, XCOPY, HoboCopy

ROBOCOPY :: Robust File Copy for Windows

Цитата Сообщение от Wikipedia
Robocopy (от англ. Robust File Copy) — утилита командной строки для репликации (не просто копирования) каталогов (папок). Она была доступна как часть Windows Resource Kit и представлена как стандартный компонент Windows Vista, Windows 7 и Windows Server 2008.
Функциональные возможности

Robocopy разработана для отказоустойчивого копирования каталогов и деревьев каталогов. Она обладает возможностью копирования всех (или выборочных) NTFS атрибутов и свойств, имеет дополнительный код для перезапуска при применении с сетевым соединением в случае его разрывов.
На сайте Microsoft доступна другая утилита RichCopy со схожими функциями.

Применение
Код Bash
1
ROBOCOPY источник назначение [файл [файл]...] [Параметры]
Источник - Исходная папка (диск:\путь или \\сервер\общий ресурс\путь).
Назначение - Конечная папка (диск:\путь или \\сервер\общий ресурс\путь).
Файл - Копировать файлы (имена и подстановочные знаки: по умолчанию «*.*»).

Параметры копирования:

Ключи

/S :: Копировать вложенные папки, кроме пустых.
/E :: Копировать вложенные папки, включая пустые.
/LEV:n :: Копировать только верхние n уровней исходного дерева папок.
/Z :: Копирование файлов с возобновлением.
/B :: Копирование файлов в режиме архивирования.
/ZB :: используется режим с возобновлением; если доступ запрещен, используется режим архивации.
/EFSRAW :: Копирование всех зашифрованных файлов в режиме EFS RAW.
/COPY: флаги копирования :: что копируется для файлов (по умолчанию /COPY:DAT).
(флаги копирования: D=Данные, A=Атрибуты, T=Метки времени).
(S=Безопасность=NTFS ACLs, O=Сведения о владельце, U=Сведения аудита).
/DCOPY:T :: Копирование меток времени папки.
/SEC :: Копировать файлы с параметрами безопасности (эквивалентно /COPY:DATS).
/COPYALL :: Копировать все сведения о файле (эквивалентно /COPY:DATSOU).
/NOCOPY :: Не копировать никаких сведений о файле (удобно использовать с параметром /PURGE).
/SECFIX :: Исправлять параметры безопасности для всех файлов, даже пропущенных.
/TIMFIX :: Исправлять атрибуты времени для всех файлов, даже пропущенных.
/PURGE :: Удалять файлы и папки назначения, которых больше не существует в источнике.
/MIR :: Создать зеркало дерева папок (эквивалентно /E с /PURGE).
/MOV :: Перемещать файлы (удаление из источника после копирования).
/MOVE :: Перемещать файлы и папки (удаление из источника после копирования).
/A+:[RASHCNET] :: Добавлять заданные атрибуты скопированным файлам.
/A+:[RASHCNET] :: Удалять заданные атрибуты из скопированных файлов.
/CREATE :: Создать только дерево папок и файлы нулевой длины.
/FAT :: Создать файлы назначения только в формате 8.3 FAT.
/256 :: Отключить поддержку длинных путей ( > 256 знаков).
/MON:n :: Наблюдать за источником; перезапустить после n изменений.
/MOT:m :: Наблюдать за источником; перезапустить через m минут, если произошли изменения.
/RH:hhmm-hhmm :: Часы запуска — время, когда можно запускать новое копирование.
/PF :: Проверять часы запуска по файлам (не по проходам).
/IPG:n :: Интервал между пакетами (мс) для снижения нагрузки на сеть при низкоскоростных подключениях.
/SL:: копирование самих символических ссылок вместо копирования целевого объекта этих ссылок.

Параметры выбора файлов:

/A :: Копировать только файлы с установленным атрибутом «Архивный».
/M :: Копировать только файлы с атрибутом «Архивный» и сбросить его.
/IA:[RASHCNETO] :: Включить файлы, у которых установлен какой-либо из заданных атрибутов.
/XA:[RASHCNETO] :: Исключить файлы, у которых установлен какой-либо из заданных атрибутов.
/XF file [файл]… :: Исключить файлы, соответствующие заданным именам, путям и подстановочным знакам.
/XD dirs [папки]… :: Исключить папки, соответствующие заданным именам и путям.
/XC :: Исключить измененные файлы.
/XN :: Исключить более поздние файлы.
/XO :: Исключить более ранние файлы.
/XX :: Исключить дополнительные файлы и папки.
/XL :: исключить отдельно расположенные файлы и папки.
/IS :: Включить те же файлы.
/IT :: Включить оптимизированные файлы.
/MAX:n :: Максимальный размер файла — исключить файлы, размер которых более n байт.
/MIN:n :: Минимальный размер файла — исключить файлы, размер которых менее n байт.
/MAXAGE:n :: Максимальный возраст файла — исключить файлы, возраст которых превышает n дней.
/MINAGE:n :: Минимальный возраст файла — исключить файлы, возраст которых менее n дней.
/MAXLAD:n :: Наиболее поздняя дата последнего обращения — исключить файлы, которые не использовались с даты n.
/MINLAD:n :: Наиболее ранняя дата последнего обращения — исключить файлы, которые использовались после даты n.
(Если n < 1900, то n = n дней, в противном случае n — дата в формате ДДММГГГГ).
/XJ :: исключить точки соединения. (по умолчанию обычно включаются).
/FFT :: Использовать время файлов FAT (двухсекундная точность).
/DST :: Учитывать одночасовую разницу при переходе на летнее время.
/XJD :: Исключить точки соединения для папок.
/XJF :: Исключить точки соединения для файлов.

Параметры повторных попыток:

/R:n :: число повторных попыток для неудавшихся копий: по умолчанию — 1 миллион.
/W:n :: Время ожидания между повторными попытками: по умолчанию — 30 секунд.
/REG :: Сохранить /R:n и /W:n в реестре как параметры по умолчанию.
/TBD :: Ждать, пока будут определены имена общих ресурсов (ошибка повторной попытки 67).

Параметры ведения журнала:

/L :: Только список — файлы не копируются, не удаляются, не помечаются метками времени.
/X :: Сообщать обо всех дополнительных файлах, а не только о выбраных.
/V :: Подробный вывод с указанием пропущенных файлов.
/TS :: Включать в вывод метки времени исходных файлов.
/FP :: Включать в вывод полные пути файлов.
/BYTES :: Печатать размеры в байтах.
/NS :: Без размера — не заносить в журнал размер файлов.
/NC :: Без класса — не заносить в журнал классы файлов.
/NFL :: Без списка файлов — не заносить в журнал имена файлов.
/NDL :: Без списка папок — не заносить в журнал имена папок.
/NP :: Без хода процесса — не отображать число скопированных %.
/ETA :: Показывать оценку времени окончания копирования файлов.
/LOG: файл :: Записывать состояние в файл журнала (перезаписывать существующий журнал).
/LOG+: файл :: Записывать состояние в файл журнала (добавлять к существующему журналу).
/UNILOG: файл :: Записывать состояние в файл журнала в формате Юникод (перезаписывать существующий журнал).
/UNILOG+: файл :: Записывать состояние в файл журнала в формате Юникод (добавлять к существующему журналу).
/TEE :: Направлять выходные данные в окно консоли и в файл журнала.
/NJH :: Без заголовка задания.
/NJS :: Без сведений о задании.
/UNICODE :: Cостояние вывода в формате Юникод.

Параметры задания:

/JOB: имя_задания :: Взять параметры из указанного файла задания.
/SAVE: имя_задания :: Сохранить параметры в указанный файл задания
/QUIT :: Выйти после обработки командной строки (для просмотра параметров).
/NOSD :: Не указывается исходная папка.
/NODD :: Не указывается папка назначения.
/IF :: Включить следующие файлы.


Коды возврата ошибок

Кликните здесь для просмотра всего текста

Robocopy ErrorLevel

HexDecimalMeaning
0×10 16 Serious error. Robocopy did not copy any files.
 Either a usage error or an error due to insufficient access privileges
 on the source or destination directories.
0×08 8 Some files or directories could not be copied
 (copy errors occurred and the retry limit was exceeded).
 Check these errors further.
0×04 4 Some Mismatched files or directories were detected.
 Examine the output log. Some housekeeping may be needed.
0×02 2 Some Extra files or directories were detected.
 Examine the output log for details.
0×01 1 One or more files were copied successfully (that is, new files have arrived).
0×00 0 No errors occurred, and no copying was done.
 The source and destination directory trees are completely synchronized.

Таким Batch-файлом получим короткое описание ошибок.
Код Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    if errorlevel 16 echo ***FATAL ERROR*** & goto end
    if errorlevel 15 echo OKCOPY + FAIL + MISMATCHES + XTRA & goto end
    if errorlevel 14 echo FAIL + MISMATCHES + XTRA & goto end
    if errorlevel 13 echo OKCOPY + FAIL + MISMATCHES & goto end
    if errorlevel 12 echo FAIL + MISMATCHES& goto end
    if errorlevel 11 echo OKCOPY + FAIL + XTRA & goto end
    if errorlevel 10 echo FAIL + XTRA & goto end
    if errorlevel 9 echo OKCOPY + FAIL & goto end
    if errorlevel 8 echo FAIL & goto end
    if errorlevel 7 echo OKCOPY + MISMATCHES + XTRA & goto end
    if errorlevel 6 echo MISMATCHES + XTRA & goto end
    if errorlevel 5 echo OKCOPY + MISMATCHES & goto end
    if errorlevel 4 echo MISMATCHES & goto end
    if errorlevel 3 echo OKCOPY + XTRA & goto end
    if errorlevel 2 echo XTRA & goto end
    if errorlevel 1 echo OKCOPY & goto end
    if errorlevel 0 echo No Change & goto end
    :end 


Графический интерфейс

Robocopy является утилитой командной строки, поэтому для удобства пользования Microsoft Technet предоставляет графическую оболочку для неё (GUI front-end), автор которой Дерк Бениш. Оболочка требует наличия .NET Framework 2.0.

Обзор от Джошуа Хоффман (Joshua Hoffman) на TechNet
Скачать графическую утилиту с форума (распакована) С форума (установщик) с сайта MS

Обзор оконного интерфейса графической утилиты:

Robocopy — описание и примеры использования, XCOPY, HoboCopyRobocopy — описание и примеры использования, XCOPY, HoboCopyRobocopy — описание и примеры использования, XCOPY, HoboCopyRobocopy — описание и примеры использования, XCOPY, HoboCopyRobocopy — описание и примеры использования, XCOPY, HoboCopyRobocopy — описание и примеры использования, XCOPY, HoboCopy



Примеры использования:

1) Простой пример — копирование содержимого каталога C:\A в каталог C:\B (включая файлы, атрибуты и метки времени), рекурсивно включая пустые каталоги (/E):
Код Bash
robocopy C:\A C:\B /E
2) Копировать содержимое каталога C:\A рекурсивно (/E), включая все атрибуты файлов (/COPYALL, эквивалентно /COPY:DATSOU, D=данные, A=аттрибуты, T=метки времени, S=безопасность=списки контроля доступа NTFS, O=владелец, U=аудит), не повторять попытки для заблокированных файлов (/R:0) (по умолчанию задан один миллион повторных попыток копирования), сохранять оригинальные метки времени у каталогов (/DCOPY:T — начиная с версии XP026 или более поздней):
Код Bash
robocopy C:\A C:\B /COPYALL /E /R:0 /DCOPY:T 
3) Создать зеркальную копию каталога C:\A в каталоге B на сетевом ресурсе \\backupserver, удалить из каталога B все отсутствующие в каталоге C:\A файлы (/MIR), использовать журнал возобновления (/Z) на случай потери сетевого соединения:
Код Bash
robocopy C:\A \\backupserver\B /MIR /Z
4) Скопировать файл file1.txt из папки c:\folder1 в папку c:\folder2:
Код Bash
robocopy.exe c:\folder1 c:\folder2 file1.txt
5) Скопировать файлы, измененные за последние 5 дней (исключая сегодня).
Код Bash
robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /maxage:5 /minage:1
6) Переместить все файлы:
Код Bash
robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /move /e
7) Скопировать файлы за исключением скрытых (/xa:h):
Код Bash
robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /e /xa:h
или за исключением read-only (/ia:rs):
Код Bash
robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /ia:rs
При копировании также можно менять атрибуты файлов, при помощи опции A+ (добавить атрибут) or A- (удалить атрибут). Скопировать все файлы и задать им атрибут read-only:
Код Bash
robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /e /A+:r
8) Скопировать все файлы по шаблону (расширению), пустые папки не копировать:
Код Bash
robocopy "E:\Documents" "\\NAS\BACKUP\Documents" *.doc *.ppt /s
9) Скопировать все файлы размером от 1000 до 60000 байт:
Код Bash
robocopy "E:\Documents" "\\NAS\BACKUP\Documents" /e /max:60000 /min:1000
10) Исключить из копирования папку AppData (/XD AppData):
Код Bash
Robocopy "C:\Users\Administrator" "\\NAS\BACKUP\Administrator" /MIR /XA:SH /XD AppData /XJD
11) Создать 32 потока (/MT:32) копирования файлов:
Код Bash
Robocopy "C:\Users\Administrator" \\NAS\BACKUP\Administrator /MIR /XA:SH /XD AppData /XJD /R:5 /W:15 /MT:32
В примере мы используем опцию /MT[:n], где n – это число от 1 до 128, которое определяет количество потоков. По умолчанию, если параметр /MT не указан, используется 8 потоков.

12) Переписать весь ACL, при этом не переписывая сами файлы:
Код Bash
robocopy <source /> /secfix /xo /xn /xc
13) Пример использования в скрипте:

Код Bash
1
2
3
4
5
6
7
8
echo Start backup time: %DATE% %TIME% >> g:\BC\backup_time.txt
robocopy.exe S:\ g:\BC\MK\ /MIR /R:1 /W:1 /NP /TEE /LOG:g:\BC\00_sync.log
echo End backup time: %DATE% %TIME% >> g:\BC\backup_time.txt
NET USE \\server01\IPC$ /USER:login password
NET USE \\fileserver\IPC$ /USER:login password
c:\reskit\robocopy \\fileserver\c$\work \\server01\e$\backup /MIR /SECFIX /TIMFIX /NP /LOG+:D:\logs\robocopy\backup_work.log
NET USE \\server01\IPC$ /DEL
NET USE \\fileserver\IPC$ /DEL
Полный список команд доступен на странице Microsoft TechNet — Robocopy

Аналоги
  • RichCopy
  • nnBackup (входит в состав nnCron)
    Возможности

    nnBackup - это крошечная (350k) консольная утилита, предназначенная для резервного копирования файлов, синхронизации содержимого каталогов, создания и обработки файл-листов. Поддерживается сжатие архивных данных по алгоритмам gz или zip, использование внешних архиваторов и запуск произвольных приложений до и после основного процесса копирования файлов. Предусмотрены специальные средства для удаления неактуальных данных из резервной копии. nnBackup можно запускать из командной строки или внешнего планировщика (например, nnCron или nnCron LITE).

    nnBackup позволяет использовать все распространенные методы резервного копирования:
    • традиционное копирование файлов и каталогов
    • копирование данных в стек пронумерованных каталогов или zip-файлов заданной глубины
    • инкрементное резервирование в стиле юниксовой программы dump
    • синхронизация файлов и каталогов (одно- и двунаправленная)
    • расфасовка информации на "порции" заданного размера

    Достоинства nnBackup:
    • маленький размер
    • высочайшая скорость работы
    • полная поддержка Юникода
    • настраиваемость:
      - работа с включающими и исключающими масками имен файлов
      - отбор файлов по размеру, атрибутам, времени создания и дате последней модификации
      - настраиваемая обработка пустых каталогов и удаленных файлов
      - настраиваемая обработка ошибок, возникающих при копировании файлов и каталогов
      - смена языка, на котором выводятся сообщения и т. д.
    • возможность запуска произвольных приложений перед или после копирования с учетом кодов возврата
    • возможность считывать параметры запуска из указанных текстовых файлов
    • специальный тестовый режим работы (без физического копирования/удаления файлов)
    • логирование всех операций и многое другое...
  • xxcopy
Ответ: Копирование заблокированных файлов с HoboCopy
Автор: windata.ru Оригинальная статья взята здесь.

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

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

Robocopy — описание и примеры использования, XCOPY, HoboCopy

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

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

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

Скачать HoboCopy для различных версий Windows (GitHub)

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

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

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

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

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

Синтаксис команды выглядит следующим образом:
Код Bash
1
hobocopy c:\имя_папки\ d:\папка_копирования\ <имя_файла>
К примеру, мы решили скопировать файл c:\users\windata\mail\outlook.pst прямо вот сюда: d:\backups\outlook.pst.

Команда будет выглядеть следующим образом:
Код Bash
1
hobocopy c:\users\windata\mail\ d:\backups\ Outlook.pst
Резервное копирование каталога с помощью HoboCopy

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

Синтаксис команды следующий:
Код Bash
1
hobocopy /full /skipdenied /y /r c:\имя_папки\ d:\папка_копирования\
Например, используя предыдущий пример, скопируем всю пользовательскую папку в папку d:\backups\. Для этого нам понадобится такая команда:
Код Bash
1
hobocopy /full /skipdenied /y /r c:\users\windata\ d:\backups\
На копирование понадобится какое-то время, так что можно передохнуть, перекусить и потрещать вконтактике (шутка). Результатом станет полная копия всего каталога. Если при копировании были сообщения об ошибках, связанных с разрешением доступа, программа укажет на проблемные файлы.

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

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

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

Синтаксис команды выглядит так:
Код Bash
1
hobocopy /incremental /statefile=имя_файла /y /r c:\имя_папки\ d:\папка_копирования\
Пример:
Код Bash
1
hobocopy /incremental /statefile=d:\lastbackup.dat /y /r c:\users\windata\ d:\backups\
Важно. При первом запуске программы необходимо указать ключ /full вместо /incremental, иначе будет выдано сообщение об ошибке, так как файл с данными о предыдущем состоянии еще не будет создан. А вот уже все последующие команды нужно указывать с ключом /incremental.

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

Добрый вечер. После копирования (создается backup) приходит мое сообщение об ошибке Backup was ERROR. See the error shared folders on the missed numbers. [all: 26, count: 22], бывает 22 копируется бывает 15, почему оно не копируется последние папки или иногда только половину скопирует, ответьте пожалуйста, что в коде не то?
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
@Echo Off
chcp 1251 >> nul
set /a count=0
set ALLFOLDER=26
set GOODFOLDER=
 
set BIN=c:\scripts\backup\
 
rem count = 26 backup'a
 
xcopy "\\server1\1c7.adm" "D:\SERVER1\1c7.adm" /d /z /y /e /h /r && set /a count+=1 && SET GOODFOLDER=%GOODFOLDER% 1
xcopy "\\server1\1c81.adm" "D:\SERVER1\1c81.adm" /d /z /y /e /h /r && set /a count+=1 && SET GOODFOLDER=%GOODFOLDER% 2
rem xcopy "\\server1\Backup" "D:\SERVER1\Backup" /d /z /y /e /h /r && set /a count+=1 && SET GOODFOLDER=%GOODFOLDER% 0
xcopy "\\server1\CRM" "D:\SERVER1\CRM" /d /z /y /e /h /r && set /a count+=1 && SET GOODFOLDER=%GOODFOLDER% 3
xcopy "\\server1\CRM_Проблемы и решения" "D:\SERVER1\CRM_Проблемы и решения" /d /z /y /e /h /r && set /a count+=1 && SET GOODFOLDER=%GOODFOLDER% 4
xcopy "\\server1\Fax" "D:\SERVER1\Fax" /d /z /y /e /h /r && set /a count+=1 && SET GOODFOLDER=%GOODFOLDER% 5
xcopy "\\server1\IB_copy" "D:\SERVER1\IB_copy" /d /z /y /e /h /r && set /a count+=1 && SET GOODFOLDER=%GOODFOLDER% 6
xcopy "\\server1\Improvement" "D:\SERVER1\Improvement" /d /z /y /e /h /r && set /a count+=1 && SET GOODFOLDER=%GOODFOLDER% 7
xcopy "\\server1\Users" "D:\SERVER1\Users" /d /z /y /e /h /r && set /a count+=1 && SET GOODFOLDER=%GOODFOLDER% 8
xcopy "\\server1\VIP" "D:\SERVER1\VIP" /d /z /y /e /h /r && set /a count+=1 && SET GOODFOLDER=%GOODFOLDER% 9
xcopy "\\server1\Базы" "D:\SERVER1\Базы" /d /z /y /e /h /r && set /a count+=1 && SET GOODFOLDER=%GOODFOLDER% 10
xcopy "\\server1\Базы подписчиков" "D:\SERVER1\Базы подписчиков" /d /z /y /e /h /r && set /a count+=1 && SET GOODFOLDER=%GOODFOLDER% 11
xcopy "\\server1\Бухгалтерия" "D:\SERVER1\Бухгалтерия" /d /z /y /e /h /r && set /a count+=1 && SET GOODFOLDER=%GOODFOLDER% 12
xcopy "\\server1\Договора" "D:\SERVER1\Договора" /d /z /y /e /h /r && set /a count+=1 && SET GOODFOLDER=%GOODFOLDER% 13
xcopy "\\server1\ДПУ" "D:\SERVER1\ДПУ" /d /z /y /e /h /r && set /a count+=1 && SET GOODFOLDER=%GOODFOLDER% 14
xcopy "\\server1\ДПУАЭИ" "D:\SERVER1\ДПУАЭИ" /d /z /y /e /h /r && set /a count+=1 && SET GOODFOLDER=%GOODFOLDER% 15
xcopy "\\server1\ДПУКМ" "D:\SERVER1\ДПУКМ" /d /z /y /e /h /r && set /a count+=1 && SET GOODFOLDER=%GOODFOLDER% 16
xcopy "\\server1\ДПУПР" "D:\SERVER1\ДПУПР" /d /z /y /e /h /r && set /a count+=1 && SET GOODFOLDER=%GOODFOLDER% 17
xcopy "\\server1\Журнал регистрации" "D:\SERVER1\Журнал регистрации" /d /z /y /e /h /r && set /a count+=1 && SET GOODFOLDER=%GOODFOLDER% 18
xcopy "\\server1\Маркетинг" "D:\SERVER1\Маркетинг" /d /z /y /e /h /r && set /a count+=1 && SET GOODFOLDER=%GOODFOLDER% 19
xcopy "\\server1\Отдел кадров" "D:\SERVER1\Отдел кадров" /d /z /y /e /h /r && set /a count+=1 && SET GOODFOLDER=%GOODFOLDER% 20
xcopy "\\server1\Отдел продаж" "D:\SERVER1\Отдел продаж" /d /z /y /e /h /r && set /a count+=1 && SET GOODFOLDER=%GOODFOLDER% 21
xcopy "\\server1\Отдел рекламы" "D:\SERVER1\Отдел рекламы" /d /z /y /e /h /r && set /a count+=1 && SET GOODFOLDER=%GOODFOLDER% 22
xcopy "\\server1\Редакция" "D:\SERVER1\Редакция"  /d /z /y /e /h /r && set /a count+=1 && SET GOODFOLDER=%GOODFOLDER% 23
rem xcopy "\\server1\Редакция" "D:\SERVER1\Редакция" /d /z /y /e /h /r && set /a count+=1 && SET GOODFOLDER=%GOODFOLDER% 23
xcopy "\\server1\Секретари" "D:\SERVER1\Секретари" /d /z /y /e /h /r && set /a count+=1 && SET GOODFOLDER=%GOODFOLDER% 24
xcopy "\\server1\Экономисты" "D:\SERVER1\Экономисты" /d /z /y /e /h /r && set /a count+=1 && SET GOODFOLDER=%GOODFOLDER% 25
xcopy "\\server1\Юристы" "D:\SERVER1\Юристы" /d /z /y /e /h /r && set /a count+=1 && SET GOODFOLDER=%GOODFOLDER% 26
 
if %count% == 26 ( 
rem "C:\scripts\promk_message.vbs" "Backup SERVER1" "Backup was successful!"
%BIN%\mailmessage.cmd "Backup SERVER1" "Backup was successful. Good Luck."
) else (
rem "C:\scripts\promk_message.vbs" "Backup SERVER1" "AHTUNG VERAHTUNG! Backup was ERROR!  Count = %count%  %GOODFOLDER%  "
%BIN%\mailmessage.cmd "Backup SERVER1" "Backup was ERROR. See the error shared folders on the missed numbers.   [all: %ALLFOLDER%, count: %count%, good: %GOODFOLDER% ]"
)
Ответ: попробуйте hobocopy она копирует даже открытые файл, но работает только на win7, server 2008 и старше
Вопрос: Скопировать папку по сети со всем содержимым (XCOPY и сетевой диск)

Скопировать папку по сети, со всем содержимым XCOPY, и сетевой диск

Начальный код

Копирование обычное.cmd // файл в кодировке (866)
Код Windows Batch file
1
2
3
4
5
6
7
@echo off
color 3f
title Копирование папки с содержимым
set old_dir="D:\старый путь\папка\Flaout4"
set new_dir="E:\новый путь\папка чувака\Flaout4"
xcopy %old_dir% %new_dir% /s /e /h /y
pause
Результат это работает копирует


Сетевое копирование через - сетевой диск M:

Копирование сетевое файла.cmd // файл в кодировке (866)
Код Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
@echo off
color 3f
title Копирование файла 
:: \\SHOMAN\SHARE_FOLDER  такой путь равен сетевому диску M:
:: SHARE_FOLDER папка в общем доступе для всех , с параметром читать, и записывать
:: SHOMAN имя пк что раздает эту папку SHARE_FOLDER
:: за месть сетевого диска M: ставим \\SHOMAN\SHARE_FOLDER
set old_dir="\\SHOMAN\SHARE_FOLDER\старый путь\папка\файл.txt"
set new_dir="E:\новый путь\папка чувака\london\"
xcopy %old_dir% %new_dir% /s /e /h /y
pause
Результат это работает копирует файл


Проблемный пример: Сетевое копирование через - сетевой диск M:

Копирование сетевое папки.cmd // файл в кодировке (866)
Код Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
@echo off
color 3f
title Копирование папки с содержимым всем
:: \\SHOMAN\SHARE_FOLDER  такой путь равен сетевому диску M:
:: SHARE_FOLDER папка в общем доступе для всех , с параметром читать, и записывать
:: SHOMAN имя пк что раздает эту папку SHARE_FOLDER
:: за месть сетевого диска M: ставим \\SHOMAN\SHARE_FOLDER
set old_dir="\\SHOMAN\SHARE_FOLDER\старый путь\папка\Flaout4"
set new_dir="E:\новый путь\папка чувака\Flaout4"
xcopy %old_dir% %new_dir% /s /e /h /y
pause
Результат не работает - копирование папки Flaout4

Облазил форумы нету инфы , об этой проблемы
У кого нибудь есть решение как папку , со всем содержимым копировать по сети ?
Ответ: GENDALF_ISTARI, очевидно, на момент копирования папка назначения "E:\новый путь\папка чувака\Flaout4" не существует.

Для этого случая нужно использовать ключ "/I":
Код Windows Batch file
xcopy %old_dir% %new_dir% /i /e /h /y
.

А ключ "/S" я убрал, так как сочетание ключей "/S" и "/E" эквивалентно одному ключу "/E".
Вопрос: Циклическое копирование файлов с использованием команды XCOPY

Здравствуйте. Я хочу скопировать определённые файлы из одной директории в другую. Имею такой bat-файл:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
REM @echo off
SET "buildType=Debug"
SET "version=3653"
SET "fileExtensionsList=dll pdb"
SET "coreDirectoryName=Lib"
SET "guiDirectoryName=Gui"
 
SET "count=3"
 
SET "dllNames[1]=Softsoft.Lib"
SET "dllMajorVersions[1]=0"
 
SET "dllNames[2]=Softsoft.Lib.Common"
SET "dllMajorVersions[2]=1.4"
 
SET "dllNames[3]=Softsoft.Lib.Migrations"
SET "dllMajorVersions[3]=1.2"
 
SETLOCAL EnableDelayedExpansion
 
FOR %%e IN (%fileExtensionsList%) DO (
    FOR /L %%i IN (1,1,%count%) DO (
        SET dllName=!dllNames[%i%]!
        SET dllMajorVersion=!dllMajorVersions[%i%]!
        SET "sourcePath=.\!coreDirectoryName!\!dllName!\bin\x86\!buildType!\!dllName!.%%e"
        ECHO !sourcePath!
        SET "targetPath=.\!guiDirectoryName!\packages\!dllName!.!dllMajorVersion!.!version!\lib\net40\!dllName!.%%e"
        ECHO !targetPath!
        XCOPY /H /Y sourcePath targetPath
        REM XCOPY ".\Lib\Softsoft.Lib\bin\x86\Debug\Softsoft.Lib.pdb" "C:\temp\tmp.tmp"
    )
)
 
SET /p exit=Press any key to exit...
Значения переменных sourcePath и targetPath выводятся на экран консоли верно. Значение sourcePath выдаёт равным
Windows Batch file
1
.\Lib\Softsoft.Lib\bin\x86\Debug\Softsoft.Lib.pdb
Однако пишет, что
Windows Batch file
1
Не найден файл: sourcePath
Если я раскомментирую строку 30, где явно указываю путь, то файл успешно копируется.
Буду очень признателен, если кто-либо поможет указать мне на мои ошибки.
Ответ:
Сообщение от novikov.ea
... указать мне на мои ошибки.


Windows Batch file
23
24
        SET dllName=!dllNames[%%i]!
        SET dllMajorVersion=!dllMajorVersions[%%i]!
;
Windows Batch file
29
        ECHO F| XCOPY /H /Y "!sourcePath!" "!targetPath!"
;
Windows Batch file
34
SET /p exit=Press Enter to exit...
.