Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Получение обновляемую ссылку для последующей закачки

Ответить
Настройки темы
CMD/BAT - [решено] Получение обновляемую ссылку для последующей закачки

Новый участник


Сообщения: 29
Благодарности: 2

Профиль | Отправить PM | Цитировать


Изменения
Автор: daradan
Дата: 01-11-2018
Всех приветствую.
Прошу не пинать, если кому-то покажется задача слишком легкой.
Хочу реализовать батник (именно батник, т.к. дальше имеется код в батнике для дальнейшей работы) для скачивания последней версии прошивки (которая еженедельно обновляется) для своего телефона.
Код получился такой
Код: Выделить весь код
rem // скачиваю целую страницу, где находятся 2 разные ссылки повторяющие дважды и сохраняю именем HM5Plus
wget -O HM5Plus http://www.miui.com/download-340.html

rem // отсеиваю ненужные тексты и получаю заветную ссылку
type HM5Plus | findstr "miui_HM5Plus_8" | grep "download_btn" | awk -F"\"" "{ print $6}"
В итоге получаю необходимую ссылку
Код: Выделить весь код
http://bigota.d.miui.com/8.10.25/miui_HM5Plus_8.10.25_55b500ece7_7.1.zip
но дальше не пойму как его записать в переменную, чтобы в дальнейшем подставить в wget
Бинарники используемые (awk, grep, sed, wget)
Спасибо

Отправлено: 12:35, 01-11-2018

 

Ветеран


Сообщения: 2183
Благодарности: 721

Профиль | Отправить PM | Цитировать


Доброго времени суток!
Помогите получить средством командной строки и wget со странички загрузки меняющуюся ссылку на скачивание крайней версии PicPick. https://picpick.app/ru/download/

Последний раз редактировалось sov44, 17-03-2024 в 17:14.


Отправлено: 15:16, 17-03-2024 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для NickM

Ветеран


Contributor


Сообщения: 4242
Благодарности: 995

Профиль | Отправить PM | Цитировать


Цитата sov44:
меняющуюся ссылку на скачивание крайней версии PicPick. »
Что-то типа такого:
Код: Выделить весь код
((iwr https://picpick.app/ru/download/free/).links|?{$_.href -match 'picpick_inst.exe'}).href[1] | Write-Output
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:36, 17-03-2024 | #12


Ветеран


Сообщения: 2183
Благодарности: 721

Профиль | Отправить PM | Цитировать


NickM, благодарю, работает на ps! Но мне-бы код на cmd, чтобы в дальнейшем использовать ссылку для скачивания и сборки sfx моим конструктором.

Отправлено: 18:33, 17-03-2024 | #13


Аватара для NickM

Ветеран


Contributor


Сообщения: 4242
Благодарности: 995

Профиль | Отправить PM | Цитировать


Цитата sov44:
Но мне-бы код на cmd »
Ссылка находится в строке с количеством символов более 10 тыс., что накладывает ограничение на обработку интерпретатором командной строки.

Возможно, что следует воспользоваться "VBScript"?

Что-то типа такого (функцию можно доработать, где файл передавать в функцию, проверку на валидность URL и прочее), где ищем первое вхождение адреса загрузки и наименование файла, наименование директории версии будет заключаться между этими двумя вхождениями:
Код: Выделить весь код
On Error Resume Next

Function UrlPath()
  Dim file, line, pos1, pos2
  
  With CreateObject("Scripting.FileSystemObject")
    Set file = .OpenTextFile("index.html", 1)
    
    Do While file.AtEndOfStream <> True
      line = file.ReadLine
	If InStr(line, "https://download.picpick.app/") > 0 Then 
   	  pos1 = InStr(line, "https://download.picpick.app/")
   	  pos2 = InStr(line, "picpick_inst.exe")
	  Exit Do
	End If
    Loop
    
    file.Close	
  End With 
  UrlPath = MiD(line, pos1, pos2 - pos1 + len("picpick_inst.exe"))	
End Function
 
WScript.Echo UrlPath
*.cmd может выглядеть так:
Код: Выделить весь код
@echo off
path_to_wget\wget.exe https://picpick.app/ru/download/free/ -O index.html
for /f %%i in ('cscript //nologo UrlPath.vbs') do set url=%%i
Echo.%url%

Последний раз редактировалось NickM, 18-03-2024 в 11:15.

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:44, 18-03-2024 | #14


Аватара для NickM

Ветеран


Contributor


Сообщения: 4242
Благодарности: 995

Профиль | Отправить PM | Цитировать


Можно попробовать одним сценарием обойтись (подсмотрел на форуме), но вызывать *.vbs всё же придётся:
Код: Выделить весь код
@echo off
set "VbsFile=%localappdata%\temp\UrlPath.vbs"
set "HtmlFile=index.html"
more +9 "%~0">"%VbsFile%"
path_to_wget\wget.exe https://picpick.app/ru/download/free/ -O "%localappdata%\temp\%HtmlFile%" >nul 2>&1
for /f %%i in ('cscript //nologo %VbsFile% %HtmlFile%') do set url=%%i
Echo.%url%
exit /b 0

On Error Resume Next

Function UrlPath(HtmlPath)
  Dim file, line, pos1, pos2
 
  With CreateObject("Scripting.FileSystemObject")
    Set file = .OpenTextFile(HtmlPath, 1)
    
    Do While file.AtEndOfStream <> True
      line = file.ReadLine
	If InStr(line, "https://download.picpick.app/") > 0 Then 
   	  pos1 = InStr(line, "https://download.picpick.app/")
   	  pos2 = InStr(line, "picpick_inst.exe")
	  Exit Do
	End If
    Loop
    
    file.Close	
  End With 
  UrlPath = MiD(line, pos1, pos2 - pos1 + len("picpick_inst.exe"))	
End Function

Set WshShell = CreateObject("Wscript.Shell")
TempPath = WshShell.ExpandEnvironmentStrings("%localappdata%\Temp")
WScript.Echo UrlPath(TempPath + "\index.html")

Последний раз редактировалось NickM, 19-03-2024 в 06:03.


Отправлено: 17:25, 18-03-2024 | #15



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Получение обновляемую ссылку для последующей закачки

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2013 - [решено] Как создать подробную обновляемую информацию о документе в полях экспресс блоков? BolgarchukR Microsoft Office (Word, Excel, Outlook и т.д.) 15 21-04-2017 23:19
Получение данныз из формы в GUI c последующей отправкой в статус-бар. winipox AutoIt 4 27-09-2011 15:37
Программа для закачки обновлений njg Хочу все знать 3 06-02-2011 16:41
Разное - Выдернуть SP3 (для последующей установки) GeniusHakker Microsoft Windows 2000/XP 4 30-08-2008 23:10
Софт для закачки видео с сайтов GI29 Программное обеспечение Windows 3 11-08-2007 15:39




 
Переход