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

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

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

Аватара для Mancoffee

Старожил


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


Конфигурация

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


Есть скрипт для скачивания последнего релиза с github
Код: Выделить весь код
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION

REM Specify the target repository
SET github_user=mhogomchungu
SET github_repo=sirikali

REM If you just want a specific version: specify a unique part of the file name
REM If you want to download all available assets: Delete after `=`
SET target_zip=SiriKaliQt6-1.8.0.setup.exe
SET target_exe=SiriKaliQt6-1.8.0.zip

FOR /f "tokens=1,* delims=:" %%A IN ('curl -ks https://api.github.com/repos/%github_user%/%github_repo%/releases/latest ^| findstr "browser_download_url"') DO (
    SET url=%%B
    IF NOT "!url:%target_zip%=!"=="!url!" (
        ECHO Downloading !url!
        curl -kOL !url!
    )
)
FOR /f "tokens=1,* delims=:" %%A IN ('curl -ks https://api.github.com/repos/%github_user%/%github_repo%/releases/latest ^| findstr "browser_download_url"') DO (
    SET url=%%B
    IF NOT "!url:%target_exe%=!"=="!url!" (
        ECHO Downloading !url!
        curl -kOL !url!
    )
)
Проблем с другими не было, потому что мне было достаточно указать конец называния релиза, например x86-64.tar|zip|и т.д., а теперь мне нужно указать начало, в данном случае SiriKaliQt6 (потому что там есть и SiriKaliQt5) и конец setup.exe|zip. То есть мне нужно посредине вставить tag_name или name из вывода curl, который выдаёт из api github.
Как это сделать попроще?

Отправлено: 10:56, 22-01-2025

 

Аватара для NickM

Ветеран


Contributor


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

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


Что-то типа такого:
Код: Выделить весь код
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION

REM Specify the target repository
SET "github_user=mhogomchungu"
SET "github_repo=sirikali"
SET "packagename=SiriKaliQt"
SET "packagever=5"

REM setup.exe
FOR /f "tokens=1,* delims=:" %%A IN ('curl -ks https://api.github.com/repos/%github_user%/%github_repo%/releases/latest ^| findstr "browser_download_url" ^| findstr "%packagename%%packagever%" ^| findstr ".exe" ^| findstr /v ".asc"') DO (
   echo.%%B
)
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:23, 22-01-2025 | #2



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

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


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


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

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


Код: Выделить весь код
curl -ks https://api.github.com/repos/mhogomchungu/sirikali/releases/latest | yq -o=json ".assets[].browser_download_url|select(. == \"*Qt6*.exe\")"
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:40, 25-01-2025 | #3


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Код: Выделить весь код
FOR /F "delims=" %%a IN ('powershell -c "(curl.exe -ks https://api.github.com/repos/mhogomchungu/sirikali/releases/latest |ConvertFrom-Json).assets.browser_download_url -match 'qt6.*exe$'"') DO @set "var=%%a"

curl.exe -kOL %var%

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

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

Отправлено: 21:11, 25-01-2025 | #4


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


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

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


DJ Mogarych, есть ли смысл в curl при использовании powershell? Лучше, пожалуй, так:
Код: Выделить весь код
((iwr https://api.github.com/repos/mhogomchungu/sirikali/releases/latest).Content | convertfrom-json).assets.browser_download_url -match 'qt6.*exe$'
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:07, 26-01-2025 | #5


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Автору потребен cmd/bat. Понятно, что лично я бы такое не использовал.
А curl.exe входит в стандартную поставку Windows уже лет 10.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 18:54, 26-01-2025 | #6


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


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

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


DJ Mogarych, да будь даже curl не штатным, речь то в конечном итоге о powershell. И да, странно, что даже спустя ~19 лет после выхода первой версии powershell, люди напирают на cmd\bat, ограниченные кодировками и прочими условностями, в том числе выводом значения выражения в переменную. Тот же Tcl умел писать в переменную на заре MS-DOS. Что сейчас не так?

Отправлено: 19:16, 26-01-2025 | #7


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Я раньше пытался убеждать кого-то, а потом перестал. Нравится людям - на здоровье.
А curl.exe порой бывает удобнее, чем iwr.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

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

Отправлено: 19:35, 26-01-2025 | #8


Аватара для YuS_2

Crazy


Contributor


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

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


Цитата DJ Mogarych:
Я раньше пытался убеждать кого-то, а потом перестал. »
Это правильно. Зачем стучать в закрытую дверь... захотят - сами спросят.

-------
scio me nihil scire. Ѫ

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

Отправлено: 19:40, 26-01-2025 | #9


Аватара для Mancoffee

Старожил


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

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


Цитата DJ Mogarych:
Я раньше пытался убеждать кого-то, а потом перестал. Нравится людям - на здоровье. »
Цитата YuS_2:
Это правильно. Зачем стучать в закрытую дверь... захотят - сами спросят. »
У меня вечно с ним проблемы, что встроенным, что новым с гитхаб, то cmdlet не найден, то ещё что-то. Поэтому bat - чётко, стабильно, везде. Бонусом - можно намного больше нагуглить для него нужных сценариев, только свои данные поменяй.

Отправлено: 09:46, 27-01-2025 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] cmd скрипт - получить данные по curl, извлечь одно значение и вывести его Sick_013 Скриптовые языки администрирования Windows 2 07-04-2020 14:49
CMD/BAT - [решено] Добавить в реестр переменную именно как переменную %var% а не как ее значение NoIZz Скриптовые языки администрирования Windows 3 13-08-2012 21:52
Установка - Как установить переменную среду для Windows 7? Shrek1 Microsoft Office (Word, Excel, Outlook и т.д.) 3 28-08-2010 18:09
Как создать переменную, имя которой такоеже как значение + несколько латин. символов? E-mail Вебмастеру 12 26-11-2005 10:14
Как узнать переменную которой передается значение?? FADE Вебмастеру 2 30-06-2004 18:45




 
Переход