UPDATE 19-07-2011:Тестирование скриптов на рабочей машине с установленной Windows XP показало, что сценарий очень плохо воспринимает пробелы, которые появляются в именах файлов при развертывании переменной %userprofile%. Выходом является заключение конструкции %userprofile%\filename.txt в кавычки. В тексте записи сценарии исправлены.
UPDATE 16-07-2011 #2: Учитывая, что на некоторых машинах наблюдались проблемы с запуском новой версии утилиты (см.
здесь) - ниже выложен модифицированный скрипт для закачки старой, девятой версии KVRT (на сервере его инсталляторы лежат в отдельной папке) -
Download KVRT version 9.cmd
cls
@echo off
REM check if target KVRT folder exist
if not exist j: exit
REM writing commands to ftp sсript to get file names from site
echo open devbuilds.kaspersky-labs.com > "%userprofile%\getfilenames.txt"
echo cd devbuilds >> "%userprofile%\getfilenames.txt"
echo cd AVPTool >> "%userprofile%\getfilenames.txt"
echo cd avptool9 >> "%userprofile%\getfilenames.txt"
echo ls setup*.exe "%userprofile%\filelist.txt" >> "%userprofile%\getfilenames.txt"
echo bye >> "%userprofile%\getfilenames.txt"
REM get file list from site
ftp -s:"%userprofile%\getfilenames.txt" -A
REM get newest KVRT file name
for /f "tokens=* delims= " %%a in ("%userprofile%\filelist.txt") do set kvrtname=%%a
echo Newest KVRT installer is: %kvrtname%
REM writing commands to ftp sсript to get newest KVRT file
echo open devbuilds.kaspersky-labs.com > "%userprofile%\download.txt"
echo cd devbuilds >> "%userprofile%\download.txt"
echo cd AVPTool >> "%userprofile%\download.txt"
echo cd avptool9 >> "%userprofile%\download.txt"
echo binary >> "%userprofile%\download.txt"
echo get %kvrtname% j:\Software\Kvrt\%kvrtname% >> "%userprofile%\download.txt"
echo bye >> "%userprofile%\download.txt"
REM Delete old files from local KVRT folder
del j:\Software\Kvrt\*.* /Q
REM get newest KVRT file from site
ftp -s:"%userprofile%\download.txt" -A
REM Clean up command and temp files
del "%userprofile%\getfilenames.txt"
del "%userprofile%\filelist.txt"
del "%userprofile%\download.txt"UPDATE 16-07-2011: В связи с обновлением KVRT, введением формы загрузки и сменой структуры папок на сервере Kaspersky Lab пришлось немного модифицировать скрипт, чтобы вновь привести его в работоспособное состояние. Изменения выделены жирным шрифтом.
Оригинальная запись:KVRT - весьма полезный инструмент, с которым довелось вылечить уже немало систем. И Винлоков, и простых файловых вирусов, и трояснов. Но есть у него один недостаток - он не умеет обновляться автоматом. Этот функционал в него специально не закладывался. Он не видит сети, не видит никаких других источников обновленных антивирусных баз, даже намека на кнопочку "обновить" нет. Это сугубо сканер-по-требованию.
Но тем не менее, обновлять его базы все же надо. Делается это выкачкой новой версии утилитки. Каждый раз открывать браузер, щелкать на закладку на ресурс
devbuilds.kaspersky-labs.com/devbuilds/AVPTool/, затем подтверждать сохранение файла. Долгое время так и делал. Наконец, мне это надоело. Антивирус (пусть даже такой специфичный) все же должен обновляться регулярно, а не как бог на душу положит. Поэтому командную строку в зубы, гугль в помощь, и вперед.
Вводные данные: папка для сохранения новой версии утилиты - j:\software\kvrt (на флешке), утилита сохраняется под тем же именем, под каким лежит на сайте.
А теперь сам скрипт:
Download KVRT.cmd
cls
@echo off
REM check if target KVRT folder exist
if not exist j: exit
REM writing commands to ftp sсript to get file names from site
echo open devbuilds.kaspersky-labs.com > "%userprofile%\getfilenames.txt"
echo cd devbuilds >> "%userprofile%\getfilenames.txt"
echo cd AVPTool >> "%userprofile%\getfilenames.txt"
echo cd avptool11 >> "%userprofile%\getfilenames.txt"
echo ls setup*.exe "%userprofile%\filelist.txt" >> "%userprofile%\getfilenames.txt"
echo bye >> "%userprofile%\getfilenames.txt"
REM get file list from site
ftp -s:"%userprofile%\getfilenames.txt" -A
REM get newest KVRT file name
for /f "tokens=* delims= " %%a in ("%userprofile%\filelist.txt") do set kvrtname=%%a
echo Newest KVRT installer is: %kvrtname%
REM writing commands to ftp sсript to get newest KVRT file
echo open devbuilds.kaspersky-labs.com > "%userprofile%\download.txt"
echo cd devbuilds >> "%userprofile%\download.txt"
echo cd AVPTool >> "%userprofile%\download.txt"
echo cd avptool11 >> "%userprofile%\download.txt"
echo binary >> "%userprofile%\download.txt"
echo get %kvrtname% j:\Software\Kvrt\%kvrtname% >> "%userprofile%\download.txt"
echo bye >> "%userprofile%\download.txt"
REM Delete old files from local KVRT folder
del j:\Software\Kvrt\*.* /Q
REM get newest KVRT file from site
ftp -s:"%userprofile%\download.txt" -A
REM Clean up command and temp files
del "%userprofile%\getfilenames.txt"
del "%userprofile%\filelist.txt"
del "%userprofile%\download.txt"Как всегда, скрипт требует маленькой доработки напильником. В нем нужно заменить тот самый каталог j:\software\kvrt на то, куда требуется загружать новую версию программы. И еще одно замечание - блок REM check if target KVRT folder exist. Его назначение - проверить, а существует ли тот самый целевой каталог. Если его нет (читать - нет флешки) - не выполнять ничего, так как бессмысленно. Существование каталога я проверяю на уровне самой флешки. Если она есть, значит есть и каталог.
Что можно сделать с этим скриптом? Варианты использования ограничены лишь фантазией. Лично у меня он прицеплен в Планировщик задач, запускается в момент захода моего пользователя в систему или каждый день в 8:30 утра (на случай, если компьютер проработал всю ночь).