Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 10.05.2015
Сообщений: 2
1

Скачать инсталляционный файл программы с неизвестным номером версии в имени с использованием Wget

10.05.2015, 17:55. Показов 1516. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет!
Подскажите как скачать файл proga с произвольной версией?
Например есть ссылка вида http://www.example.ru/proga-1.0.0.exe, но версия файла меняется, например proga-1.0.1.exe, proga-1.0.2.exe итд.
Нужно чтоб с помощью wget можно было скачать файл вида proga-*.exe.
Есть только это
Windows Batch file
1
2
3
SetLocal EnableExtensions DisableDelayedExpansion
cd /d %~dp0
For %%I In ("proga_*.exe") Do (start /wait %%I)
Можно ли как прикрутить wget к примеру выше.
В поиске был.
Справку типа cmd > for /? читал, ничего не понял.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.05.2015, 17:55
Ответы с готовыми решениями:

Как скачать файл через wget?
Всем доброго времени суток. Вообщем поставил себе debian 6. Не хочет качать файлы командой wget....

Скачать файл посредством wget с google drive
Здравствуйте. Для скачивания файла с google drive я использую батник со следующим кодом: ...

Программы с использованием операторов цикла с неизвестным числом повторений
1) Написать программы с использованием операторов цикла с неизвестным числом повторений (do while|...

Wget скачать https
пытаюсь скачать сайт wget —page-requisites -r -k -l 10 -e robots=off ...

5
Покинул форум
3672 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
10.05.2015, 19:13 2
Во-первых, можно и без wget'а обойтись. Например:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
@set @wget=0 /*
  @echo off
    set @wget=
    cscript /nologo /e:jscript "%~f0" %*
  exit /b
*/
 
(function(uri) {
  Array.prototype.last = function() {
    return this[this.length - 1];
  }
  
  var exe;
  with (new ActiveXObject('WinHTTP.WinHTTPRequest.5.1')) {
    Open('GET', uri, false);
    SetRequestHeader('User-Agent', 'Wget/1.16.3 (linux-gnu)');
    Send();
    
    if (Status === 200) {
      exe = uri.split('/').last();
      with (new ActiveXObject('Scripting.FileSystemObject')) {
        if (FileExists(exe)) DeleteFile(exe);
      }
      
      with (new ActiveXObject('SAPI.SpFileStream')) {
        Open(exe, 3);
        Write(ResponseBody);
        Close();
      }
    }
  }
}(
  WScript.Arguments.length !== 1 ?
  WScript.Quit(1) :
  WScript.Arguments.Unnamed(0)
));
Тест:
Код
E:\zip> wget.cmd https://download.sysinternals.com/files/ClockRes.zip
В итоге в папке E:\zip появится ClockRes.zip - было б стабильное подключение.
Что же до Вашего вопроса, то поседовательность действий такая:
1) получаете wget'ом исходный код страницы (wget -qO - http://mypage.html)
2) находите ссылку и передаете ее повторно wget'у, только на сей раз чтобы он загрузил файл.
2
0 / 0 / 0
Регистрация: 10.05.2015
Сообщений: 2
10.05.2015, 22:22  [ТС] 3
Цитата Сообщение от greg zakharov Посмотреть сообщение
Во-первых, можно и без wget'а обойтись.
wget нужен.
Цитата Сообщение от greg zakharov Посмотреть сообщение
Например:
Я надеялся как то проще, например что то типа
Windows Batch file
1
For %%I In ("proga_*.exe") Do (wget -c %%I)
извините если пример не правильный, сколько читал про for /?, не смог понять как и что.
Цитата Сообщение от greg zakharov Посмотреть сообщение
Что же до Вашего вопроса, то поседовательность действий такая:
В связке wget + возможности средства windows командной строки не способны распознать маску proga_*.exe которая является значением номера версии proga_1.X.X.exe?
0
Покинул форум
3672 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
11.05.2015, 09:28 4
Цитата Сообщение от Pihalych
В связке wget + возможности средства windows командной строки не способны распознать маску proga_*.exe которая является значением номера версии proga_1.X.X.exe?
Хоть Linux, хоть Windows - здравый смысл подсказывает, что лучше найти ссылку на загрузку со страницы, а потом уже с нее тянуть файл, нежели в цикле с инкрементом версии файла посылать запросы на загрузку.
0
1779 / 761 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
11.05.2015, 10:44 5
Pihalych, curl как альтернатива wget. Кусок кода из моего конструктора FastStone Image Viewer FSViewer.7z
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
set /p uSel1="Загрузить новую FastStone Image Viewer из интернет? [1 - да] "
IF "%uSel1%"=="1" (
    for /l %%a in (60,-1,50) do (
        If Not Defined flg (
            Set fSURL=http://www.faststonesoft.net/DN/FSViewer%%a.zip
            Tools\curl.exe -f -s -I !fSURL! %$X%|Find " 200 OK" >Nul
                            If ErrorLevel 0 (
                For /F "Skip=1 Tokens=1* Delims=: " %%i In ('Tools\curl.exe -f -s -I "!fSURL!" %$X%') Do Set %%i=%%j
                If /I "!Content-Type!"=="application/zip" (
                    Echo.
                    Echo Выполняется скачивание FSViewer%%a.zip  ...
                    Tools\curl.exe -f -# -O "!fSURL!" %$X%
                    set vr1=%%a& set flg=1
))))
Добавлено через 5 минут
Кусок из другого конструктора на wget
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
If Not Exist lastver.txt >lastver.txt Echo 221
    Set /p vermin=<lastver.txt
        Set /a vermax=vermin+15
    for /l %%a in (!vermax!,-1,!vermin!) do (
        set n=%%a& set k=!n:~0,1!& set l=.!n:~1,1!& set m=.!n:~2,1!& if !m!==.0 set m=
        set v=!k!!l!!m!
                    If Not Defined flg86 (
            set sURL_86=http://kjkpub.s3.amazonaws.com/sumatrapdf/rel/SumatraPDF-!v!-install.exe
            bin\wget.exe -N -P "TempZ\Upd" "!sURL_86!" 1>"TempZ\!v!.tmp" 2>&1
            If Exist TempZ\Upd\SumatraPDF-!v!-install.exe Set flg86=1
                        set nam=SumatraPDF-!v!-install.exe
                        >lastver.txt Echo !v:.=!
                        if "!m!"=="" >lastver.txt Echo !v:.=!0
                         )
1
Эксперт WindowsАвтор FAQ
17996 / 7697 / 892
Регистрация: 25.12.2011
Сообщений: 11,470
Записей в блоге: 16
11.05.2015, 17:51 6
sov44, обычный цикл можно было и в одну строчку написать.
Я к тому, что вряд ли Pihalych в этом коде разберется.
0
11.05.2015, 17:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.05.2015, 17:51
Помогаю со студенческими работами здесь

Скачать файл, если часть имени неизвестна. curl.exe
Приветствую форумчане ! Скачивание файла происходит так curl -o %TEMP%\AIDA.zip...

Как через wget скачать все файлы с сайта?
Привет! Пытаюсь скачать все файлы с сайта через wget. Даю команду wget --continue...

Скачать файл с интернета с использованием c++
Блин, в интернете ничего не найти! Скажите класс, с помощью которого можно скачать файл с интернета...

Дайте ссыль где можно скачать Chrome браузер с версии 30 по версию 45 (желательно чтобы там были все версии)
Ну как все, наиболее такие стабильные хотя бы из них..... А тож их там может быть более 50-100...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru