Войти

Показать полную графическую версию : [решено] Копирование только тех файлов которых ещё нет


i-user
05-08-2011, 03:26
Подскажите как скопировать с одного диска на другой только те файлы которых ещё нет на втором диске. Естественно с использованием батничка. :)
И ещё одно условие - сохраняя структуру каталогов.
Если делать так:
xcopy "источник" "получатель" /s
то достаёт с вопросами перезаписать/нет.
Если же так:
xcopy "источник" "получатель" /s /y
то вопрос не задаётся, но при этом начинает сливать ВСЁ. Всё же сливать каждый раз нет необходимости.
Если же использовать replase /a , но к сожалению, ключик /а не работает с подкаталогами. Прописывать же все пути смысла нет, так как могут появляться новые и придётся каждый раз вписывать новые пути…
Если же что-то типа:
set Otkuda="d:\Share\"
set Kuda="p:\Reserv\Share"
for /r %Otkuda% %%a in (.) do (
pushd "%%a"
replace "%%a\*.*" %Kuda% /a
popd
)
То не знаю, как копировать с сохранением всей структуры подкаталогов, валит всё в кучу….

Iska
05-08-2011, 03:57
i-user, попробуйте Robocopy (http://en.wikipedia.org/wiki/Robocopy) (robocopy (http://ru.wikipedia.org/wiki/Robocopy)).

amel27
05-08-2011, 05:09
@(for /r "d:\Share" %%a in (*) do @echo N
)|xcopy /s "d:\Share\*" "p:\Reserv\Share\"

i-user
05-08-2011, 05:44
ВО!!!! Всё гениальное просто! amel27, большое спасибо!

Iska, Вы имеете в виду robocopy с ключиком /MIR, к сожалению данная форма не пойдёт. На исходном диске файлы могут удаляться, а на втором должны оставаться все. А /mir делает заркалирование, т.е. если где-то будет удалён фал, то второй тоже удалиться.

Iska
05-08-2011, 10:19
2i-user: спасибо, ясно.




© OSzone.net 2001-2012