1

Я использую robocopy для перемещения данных. Я хочу добиться этого

Если данные исходного файла (новые или одинаковые) перемещаются / перезаписываются, иначе файл пропускается

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

Также была бы полезна строка для удаления файлов из источника с совпадающей датой с целью

/XO исключенные файлы с той же датой или более новые файлы в цели /XN исключенные файлы старше в источнике и более новые в цели

Некоторые данные уже есть в этом источнике.

Моя проблема, которую я хочу просто исключить, не совпадает с датой. Я хочу, чтобы убедиться, что переместить (и перезаписать, чтобы источник стал чистым) данные с новыми или такими же данными, как источник.

Я использую переключатель /XO

/XO: eXclude Older - если целевой файл существует и имеет ту же дату или новее, чем исходный - не пытайтесь перезаписать его.

Проблема в том, что я также хочу переместить те же данные даты, а не только новые. Есть способ сделать это?

1 ответ1

0

Робокопия заменила перемещение файла с той же датой

Если данные исходного файла (новые или одинаковые) перемещаются / перезаписываются, иначе файл пропускается

Чтобы завершить это, используйте Robocopy с примером пакетного скрипта, который я предоставил ниже, синтаксис и все.

Я хочу просто исключить старшее, а не ту же дату. Я хочу, чтобы убедиться, что переместить (и перезаписать, чтобы источник стал чистым) данные с новыми или такими же данными, как источник.

Проблема в том, что я также хочу переместить те же данные даты, а не только новые.

Поскольку по умолчанию Robocopy будет копировать файл только в том случае, если у источника и места назначения есть разные отметки времени или файлы разных размеров, вы должны использовать для этого параметр /IS чтобы тоже копировать те же данные, а затем, если вы используете /MOVE Переключатель, он также удалит эти файлы и папки из источника.


Используемые варианты Robocopy

(Я использовал эти переключатели в частности, но вы должны проверить, чтобы подтвердить все работы, как и ожидалось, на всякий случай.)

/S         : Copy Subfolders, but not empty ones.
/NP        : No Progress - don’t display % copied. (for cleaner log file)
/R:n       : Number of Retries on failed copies - default is 1 million.
/MOVE      : Move files and dirs (delete from source after copying).
/IS        : Include Same, overwrite files even if they are already the same.
/TS        : Include Source file Time Stamps in the output. (for log file)
/FP        : Include Full Pathname of files in the output. (for log file)
/LOG+:file : Output status to LOG file (append to existing log).

Для следующих переменных:

  • SET SRCRoot="\\Server\Share\Source"
  • SET DESTRoot="\\Server\Share\Destination"

SET SRCRoot и SET DESTRoot - это каталоги root\parent, которые вы будете рекурсивно копировать на самый верхний уровень и обратно. Вы можете установить любой из них в качестве пути к букве диска (например, C:\Path) или оставить его как UNC-путь (например, \\server\share\folder), и он будет работать в любом случае.

  • SET LOG=C:Path\Log.txt

SET LOG - это ваше добавленное имя и местоположение файла журнала. Он также может указывать на полный путь диска или путь UNC. Это файл, который вы можете просмотреть, чтобы получить всю информацию о том, что скопировано, что не было, сообщения об ошибках и т.д. Это строго необязательно, но я рекомендую использовать его всегда и проверять по мере необходимости для устранения неполадок или подтверждения.

Пример Robocopy Batch Script

Если вам также необходимо скопировать защиту файлового уровня файлов и папок, которые вы копируете в источник из места назначения (ACL), пожалуйста, дайте мне знать, так как вы, вероятно, захотите включить swithces /SEC или /COPYALL COPYALL.

@ECHO ON
SET SRCRoot="\\Server\Share\Source"
SET DESTRoot="\\Server\Share\Destination"
SET LOG=C:Path\Log.txt

:: --// Robocopy Options
:::: --// If you do not want a log file, remove the "/LOG+:%LOG%" below
SET OPT=/MOVE /IS /S /NP /R:5 /LOG+:%Log% /TS /FP
SET CMD=Robocopy "%SRCRoot%" "%DESTRoot%" *.* %OPT%
%CMD%
EXIT /B

Дополнительные переключатели Robocoy

(Если вам нужно что-то из этого, дайте мне знать, и я буду рад обновить мой ответ, если вам нужен пример, включающий любой)

/E       : Copy Subfolders, including Empty Subfolders.
/SEC     : Copy files with SECurity (equivalent to /COPY:DATS).
/DCOPY:T : Copy Directory Timestamps.
/COPYALL : Copy ALL file info (equivalent to /COPY:DATSOU)

Планирование автоматической автоматизации

Обратитесь к моему ответу Запланированные задачи для опций, ошибок и т.д., Которые вы хотите выбрать при планировании запуска пакетного сценария с помощью планировщика задач, как ожидалось. Предоставляются снимки экрана и все, и вы можете высказать свой ответ, если посчитаете его полезным и достойным как таковой - без какого-либо давления только дополнительный ресурс, который вы можете счесть полезным.


Дополнительные ресурсы и чтение

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .