使用 Windows 批处理脚本从文件获取值

使用 Windows 批处理脚本从文件获取值

使用 Windows 批处理脚本,我想要获得最大音量将 ffmpeg 输出的值(-2.9在以下示例中)写入日志文件:

[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

一旦我知道该值,我打算在一些计算中使用它。

提前致谢。

地图

答案1

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变量中

答案2

您需要拆分字符串。

查看此链接以了解正确操作方法: https://stackoverflow.com/questions/1707058/how-to-split-a-string-in-a-windows-batch-file

相关内容