![]() |
Сравнение содержимого папок и копирование недостающих файлов
Имеем три каталога:
1 - файлы 2 - пустой 3 - файлы, совпадающие по названию с файлами из каталога 1, но отличающиеся от них по своему содержимому. Нужен батник, который: Cравнивает содержимое папок 1 и 3 (по именам файлов) Если в папке 1 есть файл, которого нет в папке 3, то нужно скопировать этот файл из 1 в 2. Действие это нужно заключить в цикл с задержкой 5 секунд, и выполнять до тех пор, пока содержимое папок 1 и 3 не будет совпадать. Сравнивать нужно по имени файла, а не по содержимому. Поясню, для чего всё это. а) Файлы автоматически скачиваются с сервера в папку 1. б) Батник без всяких условий копирует все эти файлы из 1 в 2. в) Специальное ПО забирает файлы из 2, и после обработки кидает их в папку 3, не меняя название Проблема в том, что программа не всегда обрабатывает файл корректно. Может забрать файл, не выдав ничего в результате. В таком случае нужно повторить копирование именно того файла, который не был обработан, не трогая остальные. |
Я только не понимаю, к чему тут задержка в 5 сек., если при первом же копировании в 1 и 3 будут одинаковые файлы.
И еще неизвестно, какие именно форматы файлов вам нужны (.txt .exe .doc .html) Цитата:
Так и не понял, как можно втиснуть в этот код оператор else... |
Цитата:
Код:
…if not exist "%third%\%%i" (copy "%%i" "%second%\%%i") else (…) |
DesmondTruman, спасибо!
Цикл потому, что с первого раза файл может не обработаться, нужно перепроверить несколько раз. Iska, спасибо! |
Цитата DesmondTruman:
этот батник нужно запускать в папке №1. » У меня похожая задача, только батник надо открывать не из папки, а с другого компа. Папка расшарина и подключена сетевым диском. Вот так все работает Код:
SET "otpr=D:\temp\FNSsendTODAY\otpravleno\" Цитата:
Код:
SET otpr=D:\temp\FNSsendTODAY\OTPRAVLENO\ Цитата:
|
Код:
@ECHO OFF |
Цитата:
Код:
"%otpr%\%%i" Код:
"%otpr%%%~nxi" |
Margon, ознакомьтесь с тегами форума, и в первую очередь — с тэгом [code]. Читать Ваш пост невозможно.
|
Georgio, Спасибо огромное, заработало. А теперь бы еще понять что это значит.
Iska, Поправил. |
Время: 01:18. |
Время: 01:18.
© OSzone.net 2001-