如何从config.txt读取配置变量并在批处理文件中使用?
从config.txt读取配置变量到批处理并调用FFmpeg
1. 定义config.txt的配置格式
把原来批处理里的内置变量整理成键值对形式,每行一个配置项,示例config.txt内容:
coder=libx264
bitrate=5000k
resolution=1920x1080
preset=medium
audio_coder=aac
audio_bitrate=192k
2. 修改批处理文件读取配置并执行FFmpeg
下面是修改后的完整批处理代码,核心是通过for /f循环读取配置文件,再用读取到的变量调用FFmpeg:
@echo off setlocal enabledelayedexpansion :: 读取config.txt中的配置项,键值对形式赋值给批处理变量 for /f "tokens=1,2 delims==" %%a in (config.txt) do ( set "%%a=%%b" ) :: 校验必要配置项是否存在,避免命令执行失败 if not defined coder ( echo 错误:config.txt中未配置视频编码coder pause exit /b 1 ) if not defined bitrate ( echo 错误:config.txt中未配置视频码率bitrate pause exit /b 1 ) :: 执行FFmpeg处理命令,替换成你的实际输入输出路径 ffmpeg -i input.mp4 ^ -c:v !coder! -b:v !bitrate! -s !resolution! -preset !preset! ^ -c:a !audio_coder! -b:a !audio_bitrate! ^ output.mp4 endlocal pause
关键细节说明
- 延迟变量扩展:
setlocal enabledelayedexpansion必须开启,这样在FFmpeg命令里用!变量名!才能正确读取到从配置文件加载的变量值(如果用%变量名%会读取批处理初始化时的空值) - 配置文件路径:如果
config.txt不在批处理同目录,要在for /f循环里写完整路径,比如("D:\Tools\config.txt") - 带空格的配置值:如果配置值包含空格,在
config.txt里给值加双引号,比如output_dir="D:\我的视频",使用时直接调用!output_dir!即可 - 扩展配置:后续要加新的FFmpeg参数,直接在
config.txt里添加对应的键值对,比如fps=30,然后在FFmpeg命令里加-r !fps!就行
内容的提问来源于stack exchange,提问作者Videos
相关产品推荐
相关产品推荐

