Page 1 of 1
Автообновление файла с меняющимся названием
Posted: 12 May 2013, 3:36 Sun
by a3399477
Здравствуйте.
Подскажите пожалуйста решение:
На сервере
http://builder.blender.org/download/ каждый день выкладываются обновления программы в виде файла с именем:
«
blender-2.67-r*****-win64.zip»
(
***** — пятизначный номер ревизии, который растёт на неопределённое число с каждым обновлением)
Можно ли как-то настроить автоскачивание обновлённого файла с этого сайта?
Re: Автообновление файла с меняющимся названием
Posted: 13 May 2013, 9:20 Mon
by marcipan
Попробуйте поставить необходимое количество знаков $.
Posted: 13 May 2013, 10:04 Mon
by Qwertiy
a3399477 wrote:blender-2.67-r*****-win64.zip
Можно ли как-то настроить автоскачивание обновлённого файла с этого сайта?
Только через плагины.
Http-протокол не предусматривает получение списка файлов, соответственно, если имя полностью неизвестно, то единственный вариант - перебрать все имена, а он не подходит.
Ну и другой вариант - заранее узнать имя файла со страницы. Т. е. скачивать страницу с именами файлов, выдирать из неё нужное имя и скачивать соответствующую ссылку. Сам по себе DM такой способностью не обладает.
marcipan wrote:Попробуйте поставить необходимое количество знаков $.
Неа.. Перибирать пятизначное число, чтобы скачать один файл - что-то не то. Да ещё и их все запихать в автообновление...
Re:
Posted: 14 May 2013, 6:43 Tue
by a3399477
Qwertiy wrote:Перибирать пятизначное число, чтобы скачать один файл - что-то не то.
Ну, все сто тысяч вариантов перебирать не нужно. Я забыл написать, что номер ревизии увеличивается обычно не более, чем на 100 в день.
Просто думал, что в
Download Master как-то можно организовать перебор ближайших N вариантов от последнего скачанного с помощью каких-нибудь регулярных выражений.
Пока сделал решение с помощью
Wget и BAT-файла, запускаемого через стандартный планировщик:
Code: Select all
CD /D "%путь к рабочей папке%"
SET wget="%путь к Wget%\wget.exe"
FOR /F %%I IN (win64lastversion.txt) DO SET win64check=%%I
SET /A win64maxcheck=%win64check%+100
:win64loop
SET /A win64check=%win64check%+1
%wget% --spider http://builder.blender.org/download/blender-2.67-r%win64check%-win64.zip
IF %win64check% LEQ %win64maxcheck% (
IF ERRORLEVEL 0 IF NOT ERRORLEVEL 1 (
ECHO %win64check% > win64lastversion.txt
%wget% -nc http://builder.blender.org/download/blender-2.67-r%win64check%-win64.zip
) ELSE (
GOTO win64loop
)
)