Vladimir312
BANNED | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Вопросик: 1. Есть пара каталогов, надо из одного скопировать в другой новые файлы. Но не "измененные", а именно только новые, т.е. чтобы не было правок файлов "задним числом" ... Т.е. если файл уже во 2-м каталоге существует, то его не перезаписывать. === 2. вариант с xcopy /u - только "обратный" /U Копирует только файлы, которые уже существуют в конечной папке. К сожалению, обратный, типа /y и /-y с /-u - не проходит (нэт такого ключика). И в большинстве программок - такой фишки не встречал. === 3. Варианты с копированием только файлов с атрибутом "Архив" и сбросом атрибута - после копирования - не годится, т.к. MS Office (Word, Excel) после модификации, или просто после сохранения (даже без изменения данных) - ставять атрибут "А". === 4. Вариант с датами файлов - запрет на копирование по "старости" - 1 день: NTFS хранит и MS MS Office корректно ставит дату на файлы, например, проводник, правая кнопки мыши, свойства: - файл создан (одна дата - 13.11.2007) - файл изменен (другая дата - 19.11.2007) Но, стандартные консольные утилитки copy и xcopy считают дату изменения - датой файла, может быть из-за того, что MS Office (Word, Excel) оченть интересно изменяют файлы: - сначала создают временную копию, - затем удаляют оригинал, - и временную копию (измененную) переименовывают вместо оригинального файла. === 5. вариант который работает - с RAR: ключ -O- — пропускать существующие файлы Разрешает пропускать существующие файлы без выдачи запросов пользователю. Т.е. вариант "немного" "не правильный" - сначала создается RAR архив с ключем -o- - затем тут же разархивируется в целевую папку т.к. нужен не архив, а именно "живые" файлы. *** Не подскажите вариант со скриптами или готовую программку (которая "умеет" так работать) ? === Наверное, - сначала "dir" одной папки (dir /a-d /b); - затем "dir" целевой папки (dir /a-d /b); - сравнение; - копирование не достающих файлов в целевую. *** P.S. Спасибо за подсказку (см. следующий пост) - robocopy /XN делает то, что надо (копирует только новые файлы, без измененных). И, : по ссылке в шапке http://www.rsdn.ru/article/winshell/batanyca.xml Код: for /d %%i in ("%%~si") do ( set SHORT=%%~si ) echo %SHORT% | выводит короткий путь + имя самой переменной, интересно, как убрать вывод %~si | Всего записей: 151 | Зарегистр. 25-10-2006 | Отправлено: 17:11 23-11-2007 | Исправлено: Vladimir312, 23:17 23-11-2007 |
|