Autoit FileCopy для обновления только новых файлов
Я пытаюсь скопировать файлы из папки с помощью
FileCopy($Source & "*.*,$Dest",8)
Так как исходная папка содержит огромные файлы и каждый час добавляются новые файлы, я хотел копировать только новые файлы (нет в целевом каталоге)
Я не хочу использовать опцию overwrite(9), чтобы избежать нежелательного копирования.
Но если я не использую перезапись, копирование файлов прекращает обновление новых файлов (возможно, оно останавливается в тот момент, когда он находит исходный файл, существующий в каталоге назначения).
Есть ли другая встроенная функция, которая просто пропускает перезапись и копирует новые файлы???
Заранее спасибо.
1 ответ
Я предполагаю, что вы хотите это для резервного копирования.
Один вкладыш в autoit будет:
Runwait(@ComSpec & " /c " & "xcopy " & '"' & $source & '"' & ' "' & $destination & '"' & " /E /C /D /Y","",@SW_HIDE)
- Не будет перезаписывать, если исходный файл не новее (/D).
- Создаст структуру каталогов, даже пустые (/E).
- Будет копировать скрытые файлы (/H).
- Не буду останавливаться на ошибках (/C).
Например:
$source = "D:\PROGRAMING BRE !!!"
$destination = "M:\PROGRAMING BRE !!!"
$timer = TimerInit()
Runwait(@ComSpec & " /c " & "xcopy " & '"' & $source & '"' & ' "' & $destination & '"' & " /E /C /D /Y /H /J","",@SW_HIDE)
MsgBox(0,"","Done in " & TimerDiff($timer)/1000 & " seconds!")
Хотя это не чистый Autoit, а реализация XCOPY, он отлично справляется со своей задачей.
Это молниеносно!
1 ГБ 18,020 файлов, 2,224 папки 38 секунд!
Чтобы перепроверить все эти файлы и добавить новые 2sec!