@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

Поделитесь материалом с коллегами и друзьями