Батник обновления КЛАДР для 1С версии 7.7

Программирование - Внешние компоненты

Скрипт обновления файлов КЛАДР. Wget качает, а 7zip извлекает.

Скрипт обновления файлов КЛАДР. 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-Zip\7z.exe"
REM Укажим где лежит архив, он сохраняется в BASEDIR
SET ARHIVE="%PROGRAMFILES%\wget\%FILE%"
REM Укажим куда извлечь файлы.
SET EXTRACT="D:\base\"
SET BLAT="%PROGRAMFILES%\blat\blat.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^>^&1 ^|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.cmd
.cmd 2,77Kb
16.03.12
15
.cmd 2,77Kb 15 Скачать
Сама программа wget
.7z 1,12Mb
23.03.12
6
.7z 1,12Mb 6 Скачать

См. также

Комментарии
0. Valera Moscwin (voler) 14 27.03.12 07:08 Сейчас в теме
Скрипт обновления файлов КЛАДР. Wget качает, а 7zip извлекает.

Перейти к публикации

1. Алексей Ситников (SiAl) 70 27.03.12 07:08 Сейчас в теме
2. Юлия Ю (Brook) 76 29.03.12 21:47 Сейчас в теме
Как пользоваться этой штукой?
3. Роберт В е р т и н с к и й (v3rter) 11.03.16 17:54 Сейчас в теме
Я правильно понимаю, что предварительно надо руками поместить wget в Program Files\Wget ?

Я правильно понимаю, что скрипт просто поддерживает актуальной папку с КЛАДРом, не загружая его в 7.7?

Странно, что не возникает проблем со скачиванием в Program Files. У Вас XP, или скрипт запускается под Администратором?

Многим пользователям, наверное, будет удобнее держать скрипт, логи, wget и архиватор в отдельной папке за пределами Program Files.

А вот отправка результата через blat порадовала )
Оставьте свое сообщение