@ECHO OFF
ECHO DrWeb LiveCD/LiveUSB updater. v.0.0.3.alpha © 2009-2010 by MANtiCORE, portions by Yurkesha
echo.
SET "UPD_URL=ftp://ftp.drweb.com/pub/drweb/bases"
SET "DEST_DIR=BASES"
SET "UTIL_DIR=UTILITY"
SET "TEMPUPD=."
IF NOT EXIST "%UTIL_DIR%\mksquashfs.exe" ECHO Не найден SQUASHFS TOOLS!&PAUSE&EXIT
IF NOT EXIST "%UTIL_DIR%\unsquashfs.exe" ECHO Не найден SQUASHFS TOOLS!&PAUSE&EXIT
IF NOT EXIST "%UTIL_DIR%\cygwin1.dll" ECHO Не найден SQUASHFS TOOLS!&PAUSE&EXIT
IF NOT EXIST "%UTIL_DIR%\cygz.dll" ECHO Не найден SQUASHFS TOOLS!&PAUSE&EXIT
IF NOT EXIST "drweb_bases.dwm" ECHO Не найден DRWEB_BASES.DWM!&PAUSE&EXIT
IF NOT EXIST "%UTIL_DIR%\wget.exe" ECHO Не найден WGET!&PAUSE&EXIT
IF NOT EXIST "%UTIL_DIR%\unzip.exe" ECHO Не найден UNZIP!&PAUSE&EXIT
IF NOT EXIST "%DEST_DIR%" MD "%DEST_DIR%"
IF NOT EXIST "%TEMPUPD%\TMP_UPDATE" MD "%TEMPUPD%\TMP_UPDATE"
IF EXIST "%TEMPUPD%\TMP_UPDATE\*.*" DEL /Q /F "%TEMPUPD%\TMP_UPDATE\*.*"
ECHO Часть первая. актуализация существующих баз DRWEBa.
echo.
ECHO Выявляю установленные обновления
ECHO.
IF EXIST "%TEMPUPD%\squashfs-root\*.*" RMDIR /Q /S "%TEMPUPD%\squashfs-root"
ECHO Распаковываю файл drweb_bases.dwm
%UTIL_DIR%\unsquashfs.exe drweb_bases.dwm
COPY %TEMPUPD%\squashfs-root\var\drweb\bases\*.* %TEMPUPD%\BASES\ >nul
CD /D "%TEMPUPD%\TMP_UPDATE"
IF NOT EXIST ..\%DEST_DIR%\drw50000.vdb ECHO Каталог с базами пуст! Скачиваю полностью все базы!&ECHO.&..\%UTIL_DIR%\wget.exe %UPD_URL%/drw50000.zip&..\%UTIL_DIR%\unzip.exe -o drw50000.zip d???????.vdb -d"..\%DEST_DIR%
IF EXIST ddd.txt DEL /Q /F ddd.txt
FOR /R "..\%DEST_DIR%" %%i IN (d??500??.vdb drwebas?.vdb) DO ECHO %%~ni>>ddd.txt
IF NOT EXIST ddd.txt ECHO Невозможно создать список установленных баз!&PAUSE&EXIT
ECHO Получаю список доступных файлов с сервера
IF EXIST info.txt DEL /Q /F info.txt
"..\%UTIL_DIR%\wget.exe" %UPD_URL%/
rename index.html info.txt
IF NOT EXIST info.txt ECHO Не удалось получить список обновления с сервера!&PAUSE&EXIT
ECHO Создаю список для закачки
IF EXIST list1.txt DEL /Q /F list1.txt
FOR /f "usebackq tokens=2 delims=^=" %%a IN (`FINDSTR /V /I /G:ddd.txt info.txt^|FINDSTR /I "drw500 dwr500 dwn500 drwebase drwnasty drwrisky drwtoday dwntoday dwrtoday"`) DO ECHO %%a>>list1.txt
IF EXIST list.txt DEL /Q /F list.txt
FOR /F "usebackq tokens=1 delims=>" %%a IN (list1.txt) DO ECHO %%~nxa>>list.txt
REM EXIT
IF EXIST ddd.txt DEL /Q /F ddd.txt
IF EXIST info.txt DEL /Q /F info.txt
IF EXIST list1.txt DEL /Q /F list1.txt
ECHO Скачиваю обновления
FOR /F "tokens=1" %%i IN (list.txt) DO "..\%UTIL_DIR%\wget.exe" %UPD_URL%/%%i
ECHO Распаковываю скачанные файлы
FOR /F "tokens=1" %%i IN (list.txt) DO ("..\%UTIL_DIR%\unzip.exe" -o %%i d???????.vdb -d"..\%DEST_DIR%" )&(IF EXIST %%i DEL /Q /F %%i)
IF EXIST list.txt DEL /Q /F list.txt
CD /D "%~dp0"
ECHO Базы успешно скачаны!
:UPD
ECHO Часть вторая. обновление существующих баз в файле DRWEB_BASES.DWM.
echo.
ECHO Копирую файлы антивирусной базы
COPY %TEMPUPD%\BASES\*.* %TEMPUPD%\squashfs-root\var\drweb\bases\ >nul
ECHO Упаковываю файл drweb_bases.dwm
del %TEMPUPD%\drweb_bases.dwm
%UTIL_DIR%\mksquashfs.exe squashfs-root drweb_bases.dwm
RMDIR /Q /S "%TEMPUPD%\squashfs-root"
RMDIR /Q /S "%TEMPUPD%\TMP_UPDATE"
echo.
ECHO Базы в файле DRWEB_BASES.DWM обновлены!
PAUSE