Nhận giá trị từ tệp bằng cách sử dụng tập lệnh Windows Batch


0

Sử dụng tập lệnh Windows Batch, tôi muốn lấy giá trị max_volume ( -2.9trong ví dụ sau) từ đầu ra ffmpeg được ghi vào tệp nhật ký:

[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

Khi tôi biết giá trị đó, tôi dự định sử dụng nó trong một số tính toán.

Cảm ơn rất nhiều trước.

Bản đồ

Câu trả lời:


2
for /f "tokens=5" %a in ('find /i "max_volume" ffmpeg.log') do set max_volume=%a

echo %max_volume%

nó tìm kiếm tệp không phân biệt chữ hoa chữ thường, xác định dòng và sau đó lấy phần tử thứ 5 ( token) được phân định bằng khoảng trắng theo mặc định ( delimstùy chọn vắng mặt ) lưu giá trị trong max_volumebiến


+1, nhưng bạn đã quên nhân đôi số phần trăm của mình để sử dụng trong tập lệnh bó.
dbenham

haha, tôi nghĩ về nó nhưng cảm thấy thật tệ khi lặp lại nó dưới ps trên các bài đăng của tôi mỗi khi tôi trả lời về việc sử dụng forvòng lặp. bên cạnh câu hỏi không rõ ràng về việc thực hiện các hướng dẫn hàng loạt thông qua các tệp script và vâng, tôi nghĩ rằng một số chữ ký trên các bài đăng có thể thực hiện nó thông báo cho người hỏi về những đặc điểm chung, thực tiễn tốt nhất, v.v .:-)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.