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
	)
)