как копировать только новые файлы из консоли?

Trams

WinXP, из коммандной строки. Чтобы не выдавался запрос на перезапись существующих файлов (их много очень) и они не перезаписывались. Или какую нить утилитку консольную посоветуйте.

shlyumper

Если я тебя правильно понял, то копирование файлов, которых нет в директории dir2 из директории dir1:


for %f in (dir1\*) do if not exist dir2\%f copy dir1\%f dir2\%f

Ivan8209

xcopy /?
copy /?
---
...Я работаю антинаучным аферистом...

Ivan8209

Поправлю.
... in (dir1\*.*) ...
---
...Я работаю антинаучным аферистом...

shlyumper

Это необходимо только для command.com старых версий. cmd и command.com начиная с Windows95 OSR2 понимают просто *

Trams

спасибо!
подошло

xcopy dir1\* dir2\ /D /Y


а через FOR.. немного не работало, там %f полный путь выдавал при copy (не стал разбираться, раз нашёл уже выход)

shlyumper

Да, это я не учел. Надо было просто в кавычки параметры copy взять

Ivan8209

cd dir1
for %f in (*.*) do if no exist ...
?
---
...Я работаю...

shlyumper

Да не, всего лишь навсего


for %f in (dir1\*) do if not exist "dir2\%f" copy "dir1\%f" "dir2\%f"


Предыдуший вариант не работал, если в dir1 или dir2 есть пробелы или другие нехорошие символы.

Ivan8209

Тьфу, блин!
А я-то думал...
У меня пробелов в именах не бывает.
---
...Я работаю...

Trams

если их нет, то тоже не работал %)
надо бы наверно
cd dir1
... copy %f dir2
(т.к. иначе вроде получится в итоге ..copy dir1/dir1/file dir2/dir1/file )

Ivan8209

Да, ты прав.
---
...Я работаю...

shlyumper

действительно, промахнулся малость подразумевалось, что dir1, dir2 - полные пути (включая имя диска)

Ivan8209

Проверяем:
for %i in (%bin%\*.*) do echo %i
subst s: c:\thispath
copy c:\autoexec.bat s:\misc\c:\autoexec.bat
-- Too many arguments.
subst s: /d
Выводы?
---
...Я работаю...

shlyumper

Вывод: упс.

Ivan8209

Кстати, это неверно.
C:\>ver
Windows 98 [Version 4.10.2222]
C:\>for %i in (*) do echo %i
C:\>dir/b autoexec.bat
AUTOEXEC.BAT
C:\>
---
...Я работаю...
Оставить комментарий
Имя или ник:
Комментарий: