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

Ответить
 • Просмотры: 8
Аватара пользователя
Mancoffee

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

Сообщение Mancoffee »

Есть скрипт для скачивания последнего релиза с 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.

Как это сделать попроще?
Аватара пользователя
SQLai Lama

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

Сообщение SQLai Lama »

Цитата DJ Mogarych:



А curl.exe порой бывает удобнее, чем iwr.



Скорее функциональнее. Его можно использовать даже как сканер портов, когда по каким-то причинам нет nmap.


Цитата DJ Mogarych:



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



Зачем? Будь то яп или ось, это всего-навсего инструменты достижения цели и здесь их эффективность оценивает каждый сам. Набьют себе оскомину раз-другой, задумаются а правильный ли был сделан выбор.


Цитата Mancoffee:



У меня вечно с ним проблемы



Может просто отсутствие мотивации сесть и основательно разобраться?
Аватара пользователя
YuS_2

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

Сообщение YuS_2 »

Код:

Код: Выделить всё

curl -ks https://api.github.com/repos/mhogomchungu/sirikali/releases/latest | yq -o=json ".assets[].browser_download_url|select(. == \"*Qt6*.exe\")"
Аватара пользователя
Uragan66

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

Сообщение Uragan66 »

Код:

Код: Выделить всё

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%
Аватара пользователя
SQLai Lama

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

Сообщение SQLai Lama »

Что-то типа такого:



Код:

Код: Выделить всё

@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
)
Аватара пользователя
SQLai Lama

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

Сообщение SQLai Lama »

Код:

Код: Выделить всё

curl -ks https://api.github.com/repos/mhogomchungu/sirikali/releases/latest | yq -o=json ".assets[].browser_download_url|select(. == \"*Qt6*.exe\")"
Аватара пользователя
SQLai Lama

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

Сообщение SQLai Lama »

DJ Mogarych, есть ли смысл в curl при использовании powershell? Лучше, пожалуй, так:



Код:

Код: Выделить всё

((iwr https://api.github.com/repos/mhogomchungu/sirikali/releases/latest).Content | convertfrom-json).assets.browser_download_url -match 'qt6.*exe$'
Аватара пользователя
DJ Mogarych

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

Сообщение DJ Mogarych »

Код:

Код: Выделить всё

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%
Аватара пользователя
DJ Mogarych

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

Сообщение DJ Mogarych »

Цитата DJ Mogarych:



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




Это правильно. Зачем стучать в закрытую дверь... захотят - сами спросят.
Аватара пользователя
SQLai Lama

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

Сообщение SQLai Lama »

Цитата DJ Mogarych:



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





Цитата YuS_2:



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




У меня вечно с ним проблемы, что встроенным, что новым с гитхаб, то cmdlet не найден, то ещё что-то. Поэтому bat - чётко, стабильно, везде. Бонусом - можно намного больше нагуглить для него нужных сценариев, только свои данные поменяй.
Ответить

Вернуться в «Скриптовые языки администрирования Windows»