![]() |
Копирование с проверкой
Всем привет!
У меня есть bat он проверяет файл на сервере, сравнивает с локальным файлом, в случае, если на сервере более свежий файл, то файл копирует на локальную машину, если файл не сервере и клиент один и тот же, то и копирования не происходит. Все работает замечательно, если на локальной машине уже есть файл с которым происходит сравнение. А если файла на локальной машине нету, то в cmd происходит запрос: Current version \\name server\name.dll Что означает C:\Program Files\.....\name.dll: имя файла или каталога (F = файл, D = каталог)? Как избавиться от этого запроса, так чтобы cmd понимала, что у меня это файлы? set "NewFile=\\name server\name.dll" set "OldFile=%ProgramFiles(x86)%\........\name.dll" echo Current version echo N | xcopy "%NewFile%" "%OldFile%" /d/p | find /i "y">nul && echo %NewFile% || echo %OldFile% xcopy /d /q /y "%NewFile%" "%OldFile%" |
safonov_ivan, а) для синхронизации удобнее всего пользовать robocopy, б) если в ресурсах библиотеки указана версия — лучше сравнивать по ней.
|
Версия в библиотеке не указывается, поэтому сравнение по дате происходит.
Цитата:
|
Цитата:
Цитата:
Мне не очень понятна логика Вашего пакетного файла. Я по-прежнему не вижу смысла пользовать даты; необходимо и достаточно сравнивать файлы и копировать при различии, а если целевого файла нет — просто копировать, наподобие: |
Спасибо, работает!
|
Время: 13:31. |
Время: 13:31.
© OSzone.net 2001-