![]() |
Сравнение двух файлов>ветвление "fc" или "diff"
Использую "GNU utilities for Win32"
В частности md5sum.exe, wget Задача: Скачивать данные с FTP, предварительно проверив нужна новая закачка или докачка, или вообше не нужно скачивать. Есть FTP сервер с данными для каждого файла есть файл с ".md5" (их скачиваю каждый раз без условий) На клиенте: дирректория с данными c:\1\data\ для всех файлов которые были скачаны в прошлый раз посчитаны md5 и сложены в c:\1\local\ все md5 с сервера прошлой закачки в c:\1\old\ Код:
UserPass_ftp=ftp:ftp Вопрос в том что ERRORLEVEL всегда ноль. Идея исользовать ERRORLEVEL пришла от diff в NIX системах Команда diff возвращает код завершения 0, если сравниваемые файлы идентичны и 1, если они отличаются. Из "GNU utilities for Win32" то же ноль :( Какие есть альтернативы? |
Вложений: 1
Я для этих целей давно использую «Binary Compare» Steven'а Wettberg'а:
Поскольку сайт с этой загрузкой сейчас недоступен, вкладываю оригинальный архив в сообщение, можете попробовать. |
Все равно получаю нули
В тестовом все отлично Код:
BinComp.exe calendar.xml.md5 calendar.xml.md51 Цитата:
Код:
@echo off Цитата:
Внутри цикла как то иначе устанавливает %ERRORLEVEL% |
Всё правильно. Дело в том, что требуется:
Код:
setlocal enabledelayedexpansion Код:
echo !ERRORLEVEL! Код:
echo %ERRORLEVEL% Update: прошу прощения, проглядел сразу про использование Вами diff.exe: при указанных выше изменениях будет видно, что он также работает корректно. |
Только об этом подумал. Спасибо за приданный импульс в правильном направлении.
Все варианты BinComp.exe, diff.exe, и windows fc.exe дают ожидаемый результат. Для моей задачи буду использовать fc.exe. P.S.Автор должен закрыть тему? Где? |
Время: 15:23. |
Время: 15:23.
© OSzone.net 2001-