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

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

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

Аватара для Mancoffee

Старожил


Сообщения: 429
Благодарности: 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

 

Старожил


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

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


Цитата Mancoffee:
Аж жутко стало от его потенциала. »
Ради интереса задал ИИ Ваш вопрос, абсолютно ничего не меняя из Вашего же первого поста.
Ответ:
Привет! �� Давай упростим твой скрипт для скачивания последнего релиза с GitHub, чтобы он мог динамически подставлять tag_name или name из ответа API. Мы можем использовать переменные для формирования нужного имени файла. Вот как это можно сделать:

Код: Выделить весь код
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION

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

REM Get the latest release information
FOR /f "tokens=1,* delims=:" %%A IN ('curl -ks https://api.github.com/repos/%github_user%/%github_repo%/releases/latest ^| findstr "tag_name"') DO (
    SET tag_name=%%B
    SET tag_name=!tag_name:"=!
)

REM Define the patterns for the files you want to download
SET target_start=SiriKaliQt6
SET target_end=setup.exe

REM Download the files based on the tag_name
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 "!url!" NEQ "" (
        IF "!url:%target_start%=!" NEQ "!url!" (
            IF "!url:%target_end%=!" NEQ "!url!" (
                ECHO Downloading !url!
                curl -kOL !url!
            )
        )
    )
)
Объяснение изменений:
Получение tag_name: Мы добавили команду для извлечения tag_name из ответа API. Это позволяет использовать его в дальнейшем.
Проверка на начало и конец: Мы проверяем, содержит ли URL нужные префиксы и суффиксы, чтобы убедиться, что загружаем только нужные файлы.
Теперь скрипт будет автоматически подставлять tag_name и загружать файлы, соответствующие заданным критериям.

Отправлено: 12:42, 15-02-2025 | #31



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

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



Компьютерный форум 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




 
Переход