Мне удалось создать файл JSON , созданный ffprobe , который содержит основную информацию о видеопотоке в контейнере MKV.По jq-win64.exe "[.format.duration]" %%~ni.mkv.json
длительность фильма правильно читается из файла и jq echos ["1:36:55.184000"]
.Теперь я хочу сохранить это значение в глобальной переменной моего скрипта для дальнейшей обработки.Я пробовал несколько подходов, но каждый из них приводил к ошибкам и / или оставлял %duration%
пустым.Я попытался, например,
for %%i in (*.mkv) do (
SETLOCAL ENABLEDELAYEDEXPANSION
for /F "tokens=* USEBACKQ" %%F IN ('_tools\jq\jq-win64.exe "[.format.duration]" %%~ni.mkv.json') DO (SET duration=%%F)
echo Duration is: %duration%
ENDLOCAL
)
, но не смог повторить %duration%
.Я думаю, что это не может быть так сложно, скорее всего, я не делаю синтаксис прямо в пакете Windows.Есть идеи?Вот и файл JSON:
{
"format": {
"filename": "TestFile_1080p_26Mbs_8bit_BT709.mkv",
"nb_streams": 1,
"nb_programs": 0,
"format_name": "matroska,webm",
"format_long_name": "Matroska / WebM",
"start_time": "0:00:00.000000",
"duration": "1:36:55.184000",
"size": "17.586597 Gibyte",
"bit_rate": "25.978148 Mbit/s",
"probe_score": 100,
"tags": {
"title": "TestFile",
"encoder": "libmakemkv v1.14.4 (1.3.5/1.4.7) win(x64-release)",
"creation_time": "2019-08-17T21:01:18.000000Z"
}
}
}