@ECHO OFF Color 4F Title HTTPdownload Script CLS SETLOCAL :: Настройка местонахождения Filever.exe, Blat.exe и Downloader.exe. :: Filever чувствителен к использованию двойных кавычек. :: Не используйте двойные кавычки или пробелы в этом пути. Set Tools=ServerShare :: Указание адреса Web-сервера, откуда будет загружаться файл: SET HTTPloc=http://download.nai.com/products/mcafee-avert/stinger.exe :: Указание адреса Web-сервера, откуда будет загружаться файл комментариев: SET Notes=http://vil.nai.com/vil/stinger/ :: Укажите тех, кто желает получать уведомления, а не файл. :: Разделяйте запятой, а не пробелом: Set Recipients=Fred@yourcompany.com :: Укажите тех, кто желает получать файл. :: Разделяйте запятой, а не пробелом: Set FRecipients=Wilma@yourcompany.com,Betty@yourcompany.com :: Укажите администратора или других лиц, ответственных за работу сценария, :: которые будут получать уведомления о проблемах с загрузкой файла. :: Разделяйте запятой, а не пробелом: Set PRecipients=Wilma@yourcompany.com :: Укажите адрес From для сообщения: Set From=Wilma@yourcompany.com :: Укажите SMTP-сервер Set SMTPsrvr=mail.yourcompany.com :: ***************************************************** :: Ниже этого места никаких настроек не требуется, :: пока не планируется копирование нового файла в общую папку или :: не требуется указать другое положение для утилит. Call :SetHttp %HTTPloc% GOTO :SetSLoc :: Захват имени загружаемого файла. :SetHttp Set DLFile=%~nx1 Set DLFileTemp=%~n1temp%~x1 GOTO :EOF :SetSLoc Call :SetScriptLoc %0 GOTO :Begin :: Определение пути к каталогу поиска сценария. :SetScriptLoc Set ScriptLoc=%~dp1 GOTO :EOF :Begin :: Проверка наличия старых временных файлов и их удаление. if exist «%ScriptLoc%%DLFileTemp%» Del «%ScriptLoc%%DLFileTemp%» :: Получение нового файла с web-сервера. «%Tools%Downloader.exe» -download %HTTPloc% «%ScriptLoc%%DLFileTemp%» :: Если новый файл не загружен, возможно, произошел сбой. :: Повторяем. If Not Exist «%ScriptLoc%%DLFileTemp%» «%Tools%Downloader.exe» -download %HTTPloc% «%ScriptLoc%%DLFileTemp%» :: Если новый файл не загружен, возможно, вновь произошел сбой. :: Аккуратно выходим, посылаем сообщение, и сценарий будет повторяться в запланированное время. If Not Exist «%ScriptLoc%%DLFileTemp%» ECHO Download Failed & GOTO :ErrorMail SET newvsz= SET oldvsz= :: Проверка версии файла и сравнение. for /f «tokens=4,6» %%i in (?%Tools%filever.exe /A «%ScriptLoc%%DLFileTemp%»?) do SET newvsz=%%i%%j for /f «tokens=4,6» %%i in (?%Tools%filever.exe /A «%ScriptLoc%%DLFile%»?) do SET oldvsz=%%i%%j if not «%newvsz%»==»%oldvsz%» Move /Y «%ScriptLoc%%DLFileTemp%» «%ScriptLoc%%DLFile%» & ECHO no match & GOTO :Mailit :: Если при сравнении старый и новый файлы совпадают, :: просто удаляем новый файл. Del «%ScriptLoc%%DLFileTemp%» ECHO They match — no action needed... ENDLOCAL GOTO :EOF :: Если файл не загружен, возможно, истек URL :: или возникла другая проблема. :: Посылаем уведомление лицу, ответственному за сценарий. :ErrorMail ECHO A problem occurred during the download of the %DLFile% file. >»%ScriptLoc%PBlat.txt» ECHO.>>»%ScriptLoc%PBlat.txt» ECHO Check the download location to determine if the file has moved or if there is a URL problem>>»%ScriptLoc%PBlat.txt» ECHO More info is available at: %Notes%>>»%ScriptLoc%PBlat.txt» «%Tools%lat» «%ScriptLoc%PBlat.txt» -s «The download of the %DLFile% file has failed» -server %SMTPsrvr% -f %From% -t %PRecipients% ENDLOCAL GOTO :EOF