Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Копирование только тех файлов которых ещё нет (http://forum.oszone.net/showthread.php?t=212640)

i-user 05-08-2011 03:26 1726161

Копирование только тех файлов которых ещё нет
 
Подскажите как скопировать с одного диска на другой только те файлы которых ещё нет на втором диске. Естественно с использованием батничка. :)
И ещё одно условие - сохраняя структуру каталогов.
Если делать так:
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 1726166

i-user, попробуйте Robocopy (robocopy).

amel27 05-08-2011 05:09 1726180

Код:

@(for /r "d:\Share" %%a in (*) do @echo N
)|xcopy /s "d:\Share\*" "p:\Reserv\Share\"


i-user 05-08-2011 05:44 1726186

ВО!!!! Всё гениальное просто! amel27, большое спасибо!

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

Iska 05-08-2011 10:19 1726269

2i-user: спасибо, ясно.


Время: 03:14.

Время: 03:14.
© OSzone.net 2001-