batch-file - 将多个 .ttf 文件批量附加到 .mkv
问题描述
好的,我对此完全陌生...基本上我正在使用一个名为 mkvmerge 的工具将多个字体文件(.ttf)附加到 .mkv 文件。我已将 .mkv 文件与我想附加的相应字体一起放入文件夹中。
我的目标是创建一个批处理,创建所有 .mkv 文件的副本以及所有添加的附件,并将它们存放在父目录中新创建的文件夹(即修订版)中。
从一个文件夹开始:
mkdir Revised
for %%A in (*.mkv) do "%mkvmerge%" -q -o "Revised\%%A" "%%A" --attachment-mime-type application/x-truetype-font --attach-file "%%~.ttf"
如果我将“%%~.ttf”更改为实际的 .tff 文件名(即
mkdir Revised
for %%A in (*.mkv) do "%mkvmerge%" -q -o "Revised\%%A" "%%A" --attachment-mime-type application/x-truetype-font --attach-file "sans serif.ttf"
我最终会得到新创建的 Revised 文件夹,其中包含一个 .mkv 文件,其中 sans serif.tff 文件附加在 .mkv 文件本身中。但是我想添加多个 .ttf 文件而不单独命名它们。(网上搜索好像需要“$file”之类的东西,虽然我不知道怎么用)
接下来,如果我有一个包含多个子文件夹的父文件夹:
mkdir Revised
for /R %%A in (*.mkv) do "%mkvmerge%" -q -o "Revised\%%A" "%%A" --attachment-mime-type application/x-truetype-font --attach-file "%%~.ttf"
这完全是行不通的。我敢肯定,不仅仅是因为“%%~.ttf”问题。
我知道这可能有点过于雄心勃勃,所以如果有人可以帮助解决我问题的前半部分,那就太好了。提前非常感谢。
ps:如果有人需要了解mkvmerge的具体命令来帮忙:https ://mkvtoolnix.download/doc/mkvmerge.html
更新:第一部分
mkdir Revised
for %%x in (*.ttf) do (
for %%A in (*.mkv) do "%mkvmerge%" -q -o "Revised\%%A" "%%A" --attachment-mime-type application/x-truetype-font --attach-file "%%x"
)
它似乎工作得更好,但我认为脚本现在将添加和删除 .ttf 文件,直到文件夹中的最后一个 .ttf 文件仍然存在。
解决方案
请试一试。(请记住将%mkvmerge%
变量设置为可执行路径):
@echo off
set "mkvmerge=C:\Some Path\mkvmerge.exe"
for %%a in (*.ttf) do (
for /f %%i in ('dir /s /b /a-d *.mkv ^| findstr /vi Revised') do (
if not exist "%%~dpiRevised" mkdir "%%~dpi\Revised"
if not exist "%%~dpiRevised\%%~nxi" copy "%%~fi" "%%~dpiRevised"
"%mkvmerge%" -q -o "%%~dpiRevised\%%~ni_rev%%~xi" "%%~dpiRevised\%%~nxi" --attachment-mime-type application/x-truetype-font --attach-file "%%~dpi%%a"
)
)
因此,要解释您的示例出了什么问题:
在 for 循环中,您从mkv
根文件夹内部获取 apply ,并将ttf
文件应用到它并创建mkv
附加ttf
到目录的新文件Revised
,然后ttf
再次从根目录复制,覆盖目录有一个新的应用了新的目录等。mkv
Revised
ttf
相反,我们需要先将mkv
文件复制到Revised
目录中,然后将第一个ttf
文件应用到自身,Revised
然后将mkv
已附加的文件ttf
应用ttf
到它,直到所有ttf
文件都应用到原始文件的新mkv
内部并且所有文件都将保留在父文件夹中。Revised
mkv
ttf
请注意,如果我解释的任何内容没有意义,请告诉我,我会改写。
推荐阅读
- groovy - Groovy 类可以用作 FitNesse 固定装置吗
- geospatial - 如何在 Apache Fuseki Server 中找到多边形交集?
- reactjs - 使用 html2canvas 将 html 区域导出为图像
- node.js - 删除所有角色
- r - r data.table 以列输出
- android - 向下滑动并使用 Theme.MaterialComponents.DayNight 时,Scrollview 显示错误的颜色
- c++ - 有没有办法在一个线程中异步运行两个任务?
- sql - SQL星号(*)所有可能的用途
- javascript - 云功能执行完成且没有错误,但它似乎不起作用
- excel - VBA 宏使 Excel 崩溃