Получение значения из файла с использованием пакетных сценариев Windows

Используя пакетные сценарии Windows, я хочу получить значение max_volume (-2.9 в следующем примере) из вывода ffmpeg, записанного в файл журнала:

[Parsed_volumedetect_0 @ 0000000005428b20] n_samples: 13406208

[Parsed_volumedetect_0 @ 0000000005428b20] mean_volume: -20.4 dB

[Parsed_volumedetect_0 @ 0000000005428b20] max_volume: -2.9 dB

[Parsed_volumedetect_0 @ 0000000005428b20] histogram_2db: 7

[Parsed_volumedetect_0 @ 0000000005428b20] histogram_3db: 181

[Parsed_volumedetect_0 @ 0000000005428b20] histogram_4db: 963

[Parsed_volumedetect_0 @ 0000000005428b20] histogram_5db: 2774

[Parsed_volumedetect_0 @ 0000000005428b20] histogram_6db: 6614

[Parsed_volumedetect_0 @ 0000000005428b20] histogram_7db: 14743

Как только я узнаю это значение, я собираюсь использовать его в некоторых расчетах.

Заранее большое спасибо.

Mapg

2 ответа

Решение
for /f "tokens=5" %a in ('find /i "max_volume" ffmpeg.log') do set max_volume=%a

echo %max_volume%

он регистронезависимо ищет файл, определяет строку, а затем получает 5-й элемент (token) по умолчанию разделены пробелами (отсутствуют delims вариант) сохранение значения в max_volume переменная

Вам нужно будет разбить строку.

Проверьте эту ссылку, чтобы увидеть, как это сделать правильно: https://stackoverflow.com/questions/1707058/how-to-split-a-string-in-a-windows-batch-file

Другие вопросы по тегам