Robocopy пробелы в пути. Robocopy и примеры использования с параметрами. Формат даты в командной строке

Вопрос: Robocopy GUI: копирование только новых файлов


Помогите разобраться с Robocopy GUI.Какие команды лучше прописать. Нужно сделать копию папки с сервака куда падают бекапы с базы в архиве. Бекапы падают всегда в одно время. Нужно чтобы он сканировал и копировал только новые, а старые с сервера удалял.

Ответ:

Сообщение от setrg

Нужно чтобы он сканировал и копировал только новые

Код Windows Batch file
1 Robocopy /?

Там есть ключ, который копирует только измененные файлы, не трогая старые.
уже обсуждалась.

Вопрос: Копирование только новых и модифицированных файлов с сохранением структуры каталогов


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

не помогает.

Режим вывода команд на экран (ECHO) включен.

C:\Users\user\Desktop>xcopy Z:\ОБЪЕКТЫ\1_77-2778\АОП H:\работа\2778 /s /d
Скопировано файлов: 0.

C:\Users\user\Desktop>xcopy Z:\ОБЪЕКТЫ\1_77-2778\Фото строительства H:\работа\27
78 /s /d

C:\Users\user\Desktop>xcopy Z:\ОБЪЕКТЫ\1_77-2778\Фото обследования H:\работа\277
8 /s /d
Недопустимое число параметров
Для продолжения нажмите любую клавишу. . .


Каких параметров???

Если по одной строчке, то все работает

Получается мне надо сделать скрипт на запуск 120 скриптов?
это же повесит и комп и сетевое хранилище (Z:\ - это хранилище)

Ответ: странно, ключ по модификацию стоит, а он все равно спрашивает замещать или нет
и вообще, в чем прикол copy, xcopy, robocopy и т. д. все же делают по сути одно и тоже

Вопрос: Копирование только измененных файлов с выводом этих файлов


Есть два древа папок. В одном обновленная версия игры (древо1), в другом старая (древо2). Причем не известно какие файлы были изменены, и какие добавлены, но само древо каталогов почти идентичны.
Нужно провести копирование с заменой (из древа1 в древо2) только измененных и добавить новые файлы, причем копии тех файлов, которые были скопированы/добавлены должны быть перенесены в еще одно отдельное древо (древо3). Т.е. в итоге нужно сделать так, чтоб если скопировать с заменой древо3 в старую версию древа2, то получится древо1. Как это сделать?

Добавлено через 10 минут
Можно через
xcopy /T /E .\древо1\* .\древо2\*
скопировать в древо2 древо каталогов древа1, вдруг появились в древе1 новые папки.
Потом через
xcopy /D:*дата обновления* /E /Y .\древо1\* .\древо2\* > name.txt
скопировать измененные файлы и вывести лог в txt, а потом вручную искать эти файлы и создавать древо3... НО ЗАЧЕМ?

Ответ: Morses23 ,

Сообщение от Morses23

НО ЗАЧЕМ?

Добавлено через 14 часов 51 минуту
Morses23 , Вот так можно выделить разницу в файлах между папкой 1 и папкой 2 в папку 3
Код Windows Batch file
1 2 3 4 5 6 7 8 9 @ echo on set "new=%Userprofile% \Desktop\1" set "old=%Userprofile% \Desktop\2" set "razn=%Userprofile% \Desktop\3" pushd "%new% " for %%i in ("*.*" ) do ( if not exist "%old%\%% i" copy "%%i " "%razn%\%% i" ) popd pause

Добавлено через 5 часов 6 минут
Morses23 , Понял что требовалось

Код Windows Batch file
1 2 3 4 5 6 7 8 9 10 11 12 13 @ echo off set "new=%Userprofile% \Desktop\1" set "old=%Userprofile% \Desktop\2" set "razn=%Userprofile% \Desktop\3" set "izm=%Userprofile% \Desktop\4" for %%i in ("%new% \*" ) do ( for %%j in ("%old% \*" ) do ( if not exist "%old%\%% ~nxi" copy "%%i " "%razn% " & copy "%%i " "%old% " if "%%~nxi"=="%% ~nxj" ( fc "%%i " "%old% \*" if errorlevel==1 ( copy "%%i " "%izm% " & copy "%%i " "%old% " ) ) ) ) exit

Вопрос: Robocopy копирование файла без расширения


Добрый день всем.
Настроен бэкап файла kladr из сетевой папки:
Windows Batch file
1 robocopy \\comp \kladr\kladr D:\%YYYYMMDD% _Kladr\ /E /Z /J /R:2 /W:5 /BYTES /NP /XA:SH /XJD

Копируемый файл kladr не имеет расширения. Если указывать имя файла, то robocopy говорит, что не может найти папку \\comp\kladr\kladr. Т.е. robocopy название файла в команде видит как путь. Переименовывать нельзя.
Настроил копирование всей папки, и, чтобы копировать только этот файл, попытался ограничить размерами файла (/min /max) - в этом случае файлы, которые лежат в корне папки, не копируются, но копируются все папки, которые расположены в этой шаре. Файл расположен в корне диска D. На диске D еще много файлов и папок. Перемещать ничего нельзя.
Как настроить копирование так, чтобы копировался только этот файл?

Ответ:

Не по теме:

я не утверждал

Сообщение от alpap

возможно

Сообщение от alpap

так диктует синтаксис robocopy

Сильно синтаксис robocopy не рассматривал, а синтаксису xcopy противоречит, решил показать на возможную опечатку,
рад что все оказалось не так и работает как надо, удачи.

Вопрос: На флешке переименовались папки, добавились новые файлы


При попытке копировать фотографии с флешки от цифровика на внешний жёсткий диск стали возникать проблемы (не все фотографии хотели копироваться). После прекращения копирования заметил новые файлы на флешке, а затем одна папка с фотографиями переименовалась и соответственно перестала открываться (см. скриншоты). Вторая папка открывается, как и фотографии в ней, но так же появились новые файлы. Антивирус (аваст) не может сканировать эти файлы. Хотелось бы вылечить вирус и спасти фотографии! Заранее спасибо.

Ответ: На форуме, спросите там.

Вопрос: Копирование новых файлов каждые 30 минут


Знатоки, приветствую.
Помогите пожалуйста реализовать задачу.
Есть два каталога:
"Cat-1"
"Cat-2"
В каталог "Cat-1", каждые 5 минут сваливаются всякие разные непонятные файлы. Задача в том, чтобы написать скрипт, который я буду запускать в шедулере каждые 30 минут.
Сам скрипт должен искать в каталоге "Cat-1" файлы, начинающиеся с Английской буквы I, с любым расширением, которые свалились в данный каталог с момента последнего запуска скрипта (30 минут) и копировать (не перемещать) все подходящие под правило файлы в каталог "Cat-2".
Каталог "Cat-1" всегда пухнет новыми файлами, заменяемых файлов нет, дата создания всегда соответствует фактическому времени падения файла в каталог "Cat-1".
Помогите плиз с написанием скрипта.
Всем неравнодушным - огромный кармаплюс!!!

Ответ:

Сообщение от b0gus

POSTREALITY, вот такой инвариант robocopy.exe предлагаю


через опции robocopy можно выбрать всё тоже самое, в том числе циклический перезапуск и логирование.
А чтобы окно не мешало можно запустить в скрытом режиме.

Вопрос: Батник для копирования самого нового файла


Всем привет. В создании bat файлов я полнейший ноль, второй день рою интернеты, но чем дальше в лес...
Помогите, пожалуйста, с батником для копирования.
Есть каталог "example" с кучей подкаталогов, в которых в свою очередь лежат бинарники с именами test.bin. Нужно постоянно сканировать "example" и искать там эти бинарники. В папке example лежит папка "out", куда нужно копировать с заменой самый свежий бинарник, т.е.
1. ищем бинарники, смотрим их дату/время изменения
2. находим среди них самый свежий и сравниваем дату изменения файла с датой изменения бинарника из папки out.
3. если в папке out более старый бинарник, копируем туда найденный свежий файл, если же нет, то сканируем дальше.

Первый батник попробовал создать только вчера и вот что у меня получилось:
1. смог сделать постоянную перезапись бинарника в папку out из одного каталога, с которым в основном работаю
2. сделал поиск файла по имени и вывод даты/времени в консоли
дальше вообще никак не могу продвинуться

Буду рад любой помощи. заранее спасибо!

Ответ:

Сообщение от YuS_2

Как-то так:

Не знаю как это работает ввиду моего незнания бат-скриптов, но это работает!
Большое человеческое спасибо!

Вопрос: Копирование и удаление файлов на основе анализа содержимого двух папок


Добрый день! Снова нужна Ваша помощь по bat-файлу, задача в следующем:
Есть папка источник (с:\source), содержащая определенные файлы (к примеру файлы *.pdf) и конечная папка (с:\way - зеркало папки с:\source) содержащая файлы соответственно,
нужно провести анализ двух папок следующим образом:
- Если в папке источник (с:\source) появились новые файлы которых нет в конечной папке (с:\way), то скопировать их в нее с изменением даты создания этих файлов , т.е. дата создания копируемого файла(файлов) должна быть текущей (наст. время)
- Если некоторые файлы в двух папках остались без изменения ничего с ними не делать (не перекопировать)
- И если произошло удаление каких-то файлов(файла) из папки (с:\source) соответственно произвести это удаление в папке (с:\way)
Заранее Спасибо!

Ответ: Andrey_10 , если нужно установить для целевого файла текущую дату как в качестве даты создания, так и в качестве даты изменения, то используйте команду "TYPE":

Windows Batch file
1 2 3 4 5 6 7 8 9 10 @ echo off set "source=C:\source" set "destination=C:\way" set "files=*.pdf" for %%i in ("%destination%\%files% " ) do if not exist "%source%\%% ~nxi" del /a/f "%%i " for %%i in ("%source%\%files% " ) do if not exist "%destination%\%% ~nxi" type "%%i">"%destination%\%% ~nxi" exit /b

.

Вопрос: Не видно новые файлы в общей папке


Добрый день.
Есть компьютер с установленной Windows 7 x86, создана папка "C:\cam", в эту папку автоматически скачиваются файлы из фотоаппарата по вай-фай через приложение Image Transfer Utility от Canon.
Собственно эта папка расшарена по сети с доступом для всех. Но! Когда загружаются новые фотки в свойствах файлов нет разрешений на доступ "всем", только пользователю данного компьютера и, соответственно, другие пользователи не видят новых файлов. Если вручную добавить "всех", то доступ появляется, но это дикий костыль. Как заставить винду принудительно применять разрешения?
Было бы здорово научить Винду создавать документы Фотошоп, Рино или 3ds Мак

Операционка W7 64

Ответ: Следующий шаг - создайте в папке файл, например index.php. Внутри него напишите шаблон вашей странички. Например, так:




Мой заголовок


А как этот фаил создать?

Для создания точных дубликатов всех необходимых файлов в папке пользовательского профиля (C:\Users\Ваше имя) путем многопоточного копирования.

Зачем использовать Robocopy?

Если вы - сознательный пользователь, вы наверняка и так регулярно создаете образ жесткого диска и осуществляете резервное копирование данных с помощью средства «Архивация и восстановление» (Backup and Restore) Windows 7. Однако не помешает создать и еще одну резервную копию - на всякий случай. Это можно сделать и вручную, путем перетаскивания нужных файлов на внешний жесткий диск, но если их слишком много, процесс может затянуться.

Утилита Robocopy позволяет использовать более восьмидесяти переключателей командной строки для создания эффективного сценария резервного копирования. Чтобы облегчить вам задачу, я объясню, как использовать возможности утилиты для создания зеркальной копии всех файлов в папке вашего профиля (C:\Users\Ваше имя).

Составление команды

В качестве примера я составлю команду для копирования содержимого моей пользовательской папки «C:\Users\Greg Shultz» в папку «TheBackup» на внешнем жестком диске, примонтированном под литерой «G» (вы, разумеется, замените имена и адреса на собственные). Команда будет начинаться так:

Robocopy “C:\Users\Greg Shultz” “G:\TheBackup”


Я хочу скопировать все папки, даже пустые, потому что они могут пригодиться для будущих файлов. В то же время я хочу исключить из копирования файлы, которые уже удалил. Можно использовать для этого переключатели /S и /PURGE, но я предпочитаю обойтись одним переключателем для выполнения обеих задач - /MIR. Теперь команда выглядит так:

Robocopy “C:\Users\Greg Shultz” “G:\TheBackup” /MIR


В папке «C:\Users\Greg Shultz» есть несколько скрытых системных файлов и папок, которые я не собираюсь копировать - например, «NTUSER.DAT» и «AppData». Кроме того, в папке профиля присутствуют несколько точек соединения, которые привязывают к ней системные папки - например, «Cookies» и «SendTo».

Чтобы исключить из копирования скрытые системные файлы, я использую переключатель /XA:SH, а чтобы не копировать папку «AppData» со всем содержимым - переключатель /XD. Наконец, переключатель /XJD позволяет исключить все точки соединения. В результате команда теперь выглядит так:

Robocopy “C:\Users\Greg Shultz” “G:\TheBackup” /MIR /XA:SH /XD AppData /XJD


Одна из самых полезных особенностей Robocopy связна с тем, как утилита обрабатывает открытые файлы. При обнаружении такого файла программа приостанавливает копирование и ждет, пока он закроется. Каждые 30 секунд Robocopy пытается возобновить копирование. По умолчанию, предусмотрен миллион попыток (я не шучу!), но в таком случае копированию вообще не суждено завершиться, поэтому количество попыток лучше сократить.

Для этого используется переключатель /R, а изменить интервал между попытками можно с помощью переключателя /W. Я сокращу количество попыток до пяти, а временной промежуток между ними - до 15 секунд. Тогда Robocopy сможет возобновить копирование, подождав некоторое время. Теперь команда выглядит так:

Robocopy “C:\Users\Greg Shultz” “G:\TheBackup” /MIR /XA:SH /XD AppData /XJD /R:5 /W:15


Сейчас можно добавить в команду переключатель многопоточного копирования /MT[:n], где n - это число потоков от 1 до 128. Значение n можно и не указывать, а обойтись одним лишь переключателем /MT. В таком случае будет использоваться восемь потоков. Я предпочитаю 32 потока. Обратите внимание, что многопоточное копирование не совместимо с переключателями /IPG и /EFSRAW. Итак, новая команда:

Robocopy “C:\Users\Greg Shultz” “G:\TheBackup” /MIR /XA:SH /XD AppData /XJD /R:5 /W:15 /MT:32


Как и все утилиты командной строки, Robocopy постоянно информирует пользователя о состоянии выполнения операции, но куда удобнее сохранить эти данные в форме отчета. Чтобы получить полную картину, я буду использовать переключатель /V, однако сведения о прогрессе копирования каждого отдельного файла мне не нужны, поэтому я добавлю в команду переключатель /NP. Файл отчета создается с помощью переключателя /LOG и перезаписывается при каждом следующем запуске утилиты. Окончательная команда выглядит так:

Robocopy “C:\Users\Greg Shultz” “G:\TheBackup” /MIR /XA:SH /XD AppData /XJD /R:5 /W:15 /MT:32 /V /NP /LOG:Backup.log


Создание и использование сценария

Теперь, когда вы знаете, как использовать переключатели, составьте нужную вам команду в Блокноте (Notepad) и сохраните файл с именем «RobocopyBackup.cmd». Чтобы открытые файлы сценария и отчета не препятствовали копированию, я создал в корневом каталоге папку «C:\BackupTool» и сохранил их туда.

Файл отчета будет сохраняться в тот же каталог после каждого запуска утилиты. Хотя это простой текстовый файл, он может оказаться чересчур объемным для Блокнота, поэтому открывать его стоит в каком-нибудь другом текстовом процессоре - например, в Wordpad.

Теперь, когда вам понадобится создать дополнительную резервную копию, просто запустите файл «RobocopyBackup.cmd» двойным щелчком, а по окончании операции изучите файл отчета «Backup.log». С помощью

И Windows Server 2008 . Robocopy функционально заменяет Xcopy, с большим количеством опций.

Robocopy
Тип компонент Microsoft Windows [d]
Разработчик Microsoft
Операционная система Windows NT , Windows 2000 , Windows XP , Windows 2003 , Windows Vista ,Windows 7 , Windows Server 2008 .
Последняя версия 10.0.17763.1
Лицензия Проприетарное программное обеспечение
robocopy C:\A \\backupserver /E /MAX:102400000 /MIN:102400

Скопировать определенные форматы, например avi:

Robocopy C:\A \\backupserver *.exe *.avi /S

Полный список команд доступен на странице Microsoft TechNet - Robocopy

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

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

Управление полосой пропускания

У Robocopy есть опция "inter-packet gap (IPG)", которая позволяет контролировать пропускную способность сети, используемую в сеансе. Теоретически следующая формула выражает задержку (D, в миллисекундах), необходимую для имитации желаемой полосы пропускания (BD, в килобитах в секунду) по сети с доступной полосой пропускания BA kbps:

D = B A − B D B A × B D × 512 × 1000 {\displaystyle D={B_{A}-B_{D} \over B_{A}\times B_{D}}\times 512\times 1000}

На практике, обычно приходится поэкспериментировать, чтобы найти подходящую задержку из-за таких факторов, как характер и объем трафика в сети. Методология, используемая опцией IPG, может не обеспечивать тот же уровень контроля, предоставляемый некоторыми другими технологиями дросселирования полосы пропускания, такими как BITS (который используется Windows Update и BranchCache).

Каждому администратору Wintel знакома утилита Robocopy. Еще со времен Windows NT4 она вошла в Resource Kit, а начиная с Windows Vista - в состав операционной системы.
Зачем нужна Robocopy? Для того чтобы копировать файлы. Много файлов. В основном мы используем ее для миграции файловых серверов или резервного копирования.
Есть много интересных вариантов миграции файловых серверов, например, с использованием DFS-R. Но нет ничего проще и надежнее запуска

Robocopy \\SERV\D$ F:\ /e /copyall /zb /mt:8 /r:1 /W:5 /V /TS /FP /ETA /TEE /LOG:c:\temp\robocopy.txt

В финале можно закрыть пользовательский доступ к ресурсу и создать инкрементальную копию, добавив ключ /MIR.
Но так ли хороша Robocopy ? Хороша ли она настолько, чтобы доверить ей миграцию самых важных файлов?

Одним прекрасным субботним днем я мигрировал файловый сервер. Сотрудников на работе не оказалось. Первая копия была сделана еще вчера, оставалось лишь сделать инкремент и обновить ссылки в DFS.
Я запустил Robocopy, посмотрел журнал, а для перестраховки, перед переключением, решил посмотреть, сколько файлов и папок в исходном и конечном файловом ресурсе. Числа не сошлись. Неожиданно.

Но почему? Такой результат я видел впервые. Я сделал что-то не так? Кто-то из сотрудников все же изменил файлы, пока шло инкрементальное копирование? Ключ /MIR дал сбой? Какие-то файлы пропущены? Пустые? С Access Denied? Поврежденные?

Хорошо, отключаем сетевой доступ и снова копируем файлы. Не сходится! Пробуем без /MIR. Тот же результат.
Я был в недоумении. Пятнадцать лет я на 100% доверял Robocopy, и вот сегодня, впервые, она дала сбой. Некоторых файлов просто нет в месте назначения! Просто невозможно в это поверить.

Давайте подсчитаем файлы по-другому. Качаем утилиту FileList и делаем листинг файлов в исходной и конечной папке. А вот здесь число файлов совпадало. Удивительно.

А что если дело не в Robocopy? Что если Windows Explorer считает неправильно? Может быть в Windows Server 2008 R2 плохой Explorer, а в Windows Server 2012 R2 хороший? Я открыл свойства локальной и целевой папки на исходном сервере Windows Server 2008 R2. Число файлов не совпадало. Понадеемся, что в Windows Server 2012 R2 все исправлено. Открываем свойства папок на новом сервере… И…

Не совпало не только число файлов в исходной и конечной папке. Число файлов отличалось от снятых на Windows Server 2008 R2. Черная уличная магия.

И в эту минуту (наконец-то) на меня снизошло прозрение. Дело не в Robocopy, и не в версиях Explorer. Просто Explorer не умеет (!) считать, и не считает файлы и папки с именами длиннее 260 символов.

На исходном сервере файлы были расположены по пути «F:\Office1». На новом - «U:\SharedFiles\Office1».
Всего лишь из-за подпапки «SharedFiles» имена некоторых файлов и папок стали длиннее 255 символов. Для Robocopy не составило труда их скопировать. FileList легко их подсчитал. И только Explorer пропустил такие файлы при подсчете.

Сделав subst N: U:\SharedFiles и посчитав число файлов в F:\Office1 на исходном сервере и N:\Office1 на целевом, число файлов совпало.

Robocopy можно доверять.

UPD : Как правильно поправляют в комментариях, все же не 255, а

Каждому администратору Wintel знакома утилита Robocopy. Еще со времен Windows NT4 она вошла в Resource Kit, а начиная с Windows Vista - в состав операционной системы.
Зачем нужна Robocopy? Для того чтобы копировать файлы. Много файлов. В основном мы используем ее для миграции файловых серверов или резервного копирования.
Есть много интересных вариантов миграции файловых серверов, например, с использованием DFS-R. Но нет ничего проще и надежнее запуска

Robocopy \\SERV\D$ F:\ /e /copyall /zb /mt:8 /r:1 /W:5 /V /TS /FP /ETA /TEE /LOG:c:\temp\robocopy.txt

В финале можно закрыть пользовательский доступ к ресурсу и создать инкрементальную копию, добавив ключ /MIR.
Но так ли хороша Robocopy ? Хороша ли она настолько, чтобы доверить ей миграцию самых важных файлов?

Одним прекрасным субботним днем я мигрировал файловый сервер. Сотрудников на работе не оказалось. Первая копия была сделана еще вчера, оставалось лишь сделать инкремент и обновить ссылки в DFS.
Я запустил Robocopy, посмотрел журнал, а для перестраховки, перед переключением, решил посмотреть, сколько файлов и папок в исходном и конечном файловом ресурсе. Числа не сошлись. Неожиданно.

Но почему? Такой результат я видел впервые. Я сделал что-то не так? Кто-то из сотрудников все же изменил файлы, пока шло инкрементальное копирование? Ключ /MIR дал сбой? Какие-то файлы пропущены? Пустые? С Access Denied? Поврежденные?

Хорошо, отключаем сетевой доступ и снова копируем файлы. Не сходится! Пробуем без /MIR. Тот же результат.
Я был в недоумении. Пятнадцать лет я на 100% доверял Robocopy, и вот сегодня, впервые, она дала сбой. Некоторых файлов просто нет в месте назначения! Просто невозможно в это поверить.

Давайте подсчитаем файлы по-другому. Качаем утилиту FileList и делаем листинг файлов в исходной и конечной папке. А вот здесь число файлов совпадало. Удивительно.

А что если дело не в Robocopy? Что если Windows Explorer считает неправильно? Может быть в Windows Server 2008 R2 плохой Explorer, а в Windows Server 2012 R2 хороший? Я открыл свойства локальной и целевой папки на исходном сервере Windows Server 2008 R2. Число файлов не совпадало. Понадеемся, что в Windows Server 2012 R2 все исправлено. Открываем свойства папок на новом сервере… И…

Не совпало не только число файлов в исходной и конечной папке. Число файлов отличалось от снятых на Windows Server 2008 R2. Черная уличная магия.

И в эту минуту (наконец-то) на меня снизошло прозрение. Дело не в Robocopy, и не в версиях Explorer. Просто Explorer не умеет (!) считать, и не считает файлы и папки с именами длиннее 260 символов.

На исходном сервере файлы были расположены по пути «F:\Office1». На новом - «U:\SharedFiles\Office1».
Всего лишь из-за подпапки «SharedFiles» имена некоторых файлов и папок стали длиннее 255 символов. Для Robocopy не составило труда их скопировать. FileList легко их подсчитал. И только Explorer пропустил такие файлы при подсчете.

Сделав subst N: U:\SharedFiles и посчитав число файлов в F:\Office1 на исходном сервере и N:\Office1 на целевом, число файлов совпало.

Robocopy можно доверять.

UPD : Как правильно поправляют в комментариях, все же не 255, а