Войти

Показать полную графическую версию : [решено] cmd скрипт - получить данные по curl, извлечь одно значение и вывести его


Sick_013
07-04-2020, 13:06
Привет

Помогите написать скрипт, нужно получить данные по curl, от локального сервера который возвращает prometheus метрики, после чего извлечь одно значение и вывести его как результат скрипта.

curl http://admin:admin@127.0.0.1:80/tools/metrics-prometheus

вывод получаю такой:

orthanc_count_instances 7 1586251203777
orthanc_count_patients 5 1586251203777
orthanc_count_series 7 1586251203777
orthanc_count_studies 5 1586251203777
orthanc_disk_size_mb 98.7805328 1586251203777
orthanc_jobs_completed 10 1586251203777
orthanc_jobs_failed 0 1586251203777
orthanc_jobs_pending 0 1586251203777
orthanc_jobs_running 0 1586251203777
orthanc_jobs_success 10 1586251203777
orthanc_rest_api_active_requests 1 1586251203776
orthanc_rest_api_duration_ms 0 1586248489920
orthanc_uncompressed_size_mb 98.7805328 1586251203777

из этого вывода нужно получить одно значение orthanc_disk_size_mb, то есть чтобы скрипт выводил 98
без имени метрики, дробной части и того что после пробела.

Заранее спасибо кто откликнется)

iglezz
07-04-2020, 13:53
Если вывод -- простой текст, то можно так:for /f "tokens=1,2 delims=. " %%a in ('curl http://admin:admin@127.0.0.1:80/tools/metrics-prometheus') do if "%%a"=="orthanc_disk_size_mb" set value=%%b
В результате в переменной %value% будет искомое значение или пусто, если значение не найдено.
Подробности в `for /?`

Sick_013
07-04-2020, 14:49
Огромное спасибо! сначала не взлетело, потом понял что curl.exe нужно дописать :up




© OSzone.net 2001-2012