![如何将.ini 文件中的路径调用到 bat 命令字符串中?](https://linux22.com/image/1560260/%E5%A6%82%E4%BD%95%E5%B0%86.ini%20%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%E8%B7%AF%E5%BE%84%E8%B0%83%E7%94%A8%E5%88%B0%20bat%20%E5%91%BD%E4%BB%A4%E5%AD%97%E7%AC%A6%E4%B8%B2%E4%B8%AD%EF%BC%9F.png)
我有一个名为 job1.ini 的 .ini 文件,该 .ini 包含我需要处理的信息,通过将其注入批处理脚本中的特定位置即可。
批处理脚本与我的 .ini 文件位于同一文件夹中
job1.ini的内容:
[工作集]
编解码器=hevc
视频=E:\文件夹\B 1.265
视频宽度=1920
视频高度=1080
我的脚本:
“C:\Temp\mkvmerge.exe”-o“E:\done.mkv”--title“B 1”我需要来自 ini 的那个路径““C:\Temp\audio.flac””
我还发现了这一点:
对于/f“tokens=2 delims==”%%a在('findstr Video job1.ini')中设置Video=%%a
我怎样才能将这 3 个部分结合起来,以使我的脚本能够正常工作?
答案1
您的线路:
for /f "tokens=2 delims==" %%a in ('findstr Video job1.ini') do set Video=%%a
无法工作,因为 findstr 也会匹配Videoheight/VideoWidth
条目并产生结果环境变量Video=1080
尝试一下(未经测试):
@Echo off&SetLocal EnableExtensions EnableDelayedExpansion
Set "Video="
for /f "delims=" %%a in ('findstr /i "^Video=" job1.ini') do set "%%a"
if defined Video "C:\Temp\mkvmerge.exe" -o "E:\done.mkv" --title "B 1" "%Video%" "C:\Temp\audio.flac"