gifts2017

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

Опубликовал Valera Moscwin (voler) в раздел Программирование - Внешние компоненты

Скрипт обновления файлов КЛАДР. 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) 27.03.12 07:08
Скрипт обновления файлов КЛАДР. Wget качает, а 7zip извлекает.

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

1. Алексей Ситников (SiAl) 27.03.12 07:08
2. Юлия Ю (Brook) 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 порадовала )
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа