PDA

Показать полную графическую версию : [решено] Сравнение папок из коммандной строки с логом


nbds
23-10-2011, 23:35
Нужно то-нибудь совсем примитивное, чтобы запускать по расписанию. Содержимое файлов в папках не нужно сравнивать, только их даты и размеры. Лог должен быть совсем примитмвным: или ОК, или не ОК. Если не ОК, то я сравню вручную и определю, какие различия.

Если в логе будет больше одной строки, то это сильно затруднит его обработку, потому что я соберу эти логи в один с нескольких десятков серверов. Этот суммарный лог нужно просматривать одним взглядом.

kiripanda
24-10-2011, 00:14
set "src=c:\src"
set "dst=z:\dst"

for /f "delims=" %%a in ('echo n^|xcopy "%src%" "%dst%" /dsl') do (
if "%%a" == "0 файл(а,ов)" (
echo OK "%src%" "%dst%">log.log
) else (
echo FU "%src%" "%dst%">log.log
goto:eof
)
)

nbds
24-10-2011, 01:03
Изящно!
Но не работает... думаю, проблема вот здесь:
"0 файл(а,ов)" »
А в англоязычной версии будет "0 file(s)" ?
Но все равно не работает. Фукает и когда папки идентичны, и когда различаются.

kiripanda
24-10-2011, 10:19
что пишет xcopy c:\src z:\dst /dsl на одинаковых папках?

есть источник-назначение или папки должны синхронизироваться при изменении в любой из них?

nbds
24-10-2011, 14:22
что пишет xcopy c:\src z:\dst /dsl на одинаковых папках? »
Пишет "0 File(s)" и таким образом все работает. Наверное, это case sensitive, потому и не работало.

Вообще решение очень хорошее, я считал, что нужно пользоваться сторонними программами и даже и не подумал, что этого можно добиться с помощью xcopy.

Вообще-то эта проблемя - паранойя моего начальства. Эти две папки синхронизируются с помощью robocopy. Все проверено вручную много раз и все работает, но он хочет запустить еще и дополнительную проверку.

Кстати, если я хочу исключить из проверки несколько файлов, могу ли я пользоваться /EXCLUDE ?

nbds
24-10-2011, 21:58
kiripanda, огромное спасибо! Работает и с /EXCLUDE .




© OSzone.net 2001-2012