Скрипт обновления файлов КЛАДР. Wget качает, а 7zip извлекает.
@echo off & setlocal enableextensions
@echo off
REM Основной каталог.
SET DT=%DATE%%TIME%
SET BASEDIR=%PROGRAMFILES%wget
REM имя wget, возможно с подкаталогом.
SET WGET=wget.exe
REM Ссылка без указания конечного файла.
SET URL=http://www.gnivc.ru/html/gnivcsoft/KLADR/
REM Указываем имя файла для скачки.
SET FILE=BASE.7z
REM Укажем имя файла лога.
SET LOG=wget.log
REM Укажим программы для распаковки архива.
SET UNPACK=»%PROGRAMFILES%7-Zip7z.exe»
REM Укажим где лежит архив, он сохраняется в BASEDIR
SET ARHIVE=»%PROGRAMFILES%wget\%FILE%»
REM Укажим куда извлечь файлы.
SET EXTRACT=»D:ase»
SET BLAT=»%PROGRAMFILES%latlat.exe»
echo Begin work %DT% >> «%BASEDIR%%LOG%»
REM Получим размер файла локального.
@for %%i in (%ARHIVE%) do (set /a size1=%%~Zi)
echo size local file is %size1% >> «%BASEDIR%%LOG%»
REM Полчим размер удаленного файла.
for /f «usebackq tokens=2» %%i in (`wget.exe —spider %URL%%FILE% 2#k8SjZc9Dxk>#k8SjZc9Dxk&1 #k8SjZc9Dxk|find.exe /i «Length:»`) do (set /a size2=%%i)
if errorlevel 0 goto NORMAL
if errorlevel 1 goto GOODBYE
REM Проверим существует ли файл по ссылке.
REM «%BASEDIR%%WGET%» —spider %URL%%FILE% -o «%BASEDIR%%LOG%»
REM echo %ERRORLEVEL%
REM if errorlevel 0 goto NORMAL
REM if errorlevel 1 goto GOODBYE
:NORMAL
REM Запустим закачку.
echo size remote file is %size2% >> «%BASEDIR%%LOG%»
REM «%BASEDIR%%WGET%» -t 10 -w 5 -nd -N -a -b %URL%%FILE% -o «%BASEDIR%%LOG%»
if %size1% EQU %size2% (
echo %size1% is equal to %size2% >> «%BASEDIR%%LOG%»
goto GOODBYE
) else (
if %size1% LSS %size2% (
echo %size1% is smaller than %size2% >> «%BASEDIR%%LOG%»
«%BASEDIR%%WGET%» -t 10 -w 5 -nd -N -a -b %URL%%FILE% -o «%BASEDIR%%LOG%»
%UNPACK% e %ARHIVE% -o%EXTRACT% -y >> «%BASEDIR%%LOG%»
%BLAT% -p admin -charset windows-1251 -subject «Kladr was update %DATE%%TIME%» -body «Kladr was update %DATE%%TIME%» -to admin@z-tec.ru -attach «%BASEDIR%%LOG%»
) else (
echo %size1% is greater than %size2% >> «%BASEDIR%%LOG%»
«%BASEDIR%%WGET%» -t 10 -w 5 -nd -N -a -b %URL%%FILE% -o «%BASEDIR%%LOG%»
%UNPACK% e %ARHIVE% -o%EXTRACT% -y >> «%BASEDIR%%LOG%»
%BLAT% -p admin -charset windows-1251 -subject «Kladr was update %DATE%%TIME%» -body «Kladr was update %DATE%%TIME%» -to admin@z-tec.ru -attach «%BASEDIR%%LOG%»
)
)
REM Проверим существует архив.
REM if exist %ARHIVE% (
REM Выполним распоковку архива, если он существует.
REM %UNPACK% e %ARHIVE% -o%EXTRACT% -y >> «%BASEDIR%%LOG%»
REM ) else (
REM Если файл не существует запишем это.
REM echo %ARHIVE% file is missing %DATE%%TIME% >> «%BASEDIR%%LOG%»
REM )
:GOODBYE
echo END work %DT% >> «%BASEDIR%%LOG%»
EXIT
Скрипт ведет лог.
Очень удобно нет необходимости проверять обновления кладр.
Скрипт обновления файлов КЛАДР. Wget качает, а 7zip извлекает.
Перейти к публикации
А зачем два раза
echo off
Как пользоваться этой штукой?
Я правильно понимаю, что предварительно надо руками поместить wget в Program FilesWget ?
Я правильно понимаю, что скрипт просто поддерживает актуальной папку с КЛАДРом, не загружая его в 7.7?
Странно, что не возникает проблем со скачиванием в Program Files. У Вас XP, или скрипт запускается под Администратором?
Многим пользователям, наверное, будет удобнее держать скрипт, логи, wget и архиватор в отдельной папке за пределами Program Files.
А вот отправка результата через blat порадовала )