![从 .mkv 文件批量删除标题](https://linux22.com/image/1497270/%E4%BB%8E%20.mkv%20%E6%96%87%E4%BB%B6%E6%89%B9%E9%87%8F%E5%88%A0%E9%99%A4%E6%A0%87%E9%A2%98.png)
尝试从一组 MKV 文件中删除“title”属性。Windows 资源管理器被 COM Surrogate 阻止,从而保留了此 (如何从视频文件中删除标题和其他元数据?) 无法正常工作。是否有一个命令可以运行,该命令将遍历所有文件并使用 mkvmerge 或 mkvpropedit 删除“标题”?
答案1
这是一个单个批处理文件选项。在 .txt 文件中,保存以下代码,然后将文件扩展名重命名为 .bat 或 .cmd,以创建 Windows 批处理文件。
对于 %%A IN (*.mkv) 执行(“C:\Program Files\MKVToolNix\mkvpropedit.exe”-d title“%%~A”)暂停
运行时,它仅过滤当前文件夹或目录中的 .mkv 文件,然后继续删除文件夹或目录中找到的所有 mkv 文件的标题。使用此方法,mkv 文件不会被重新编码,也不会被复制。
我希望这对其他人有帮助,如果没有帮助,也许对我自己有帮助,当我将来再次需要它时。;-)
答案2
正在寻找一种方法来解决这个问题,因为当从 Windows 流式传输到我的电视时,电视会无序播放文件,因为它使用标题按字母顺序对文件进行排序。
使用上述一些答案,这个脚本在 PowerShell 中为我工作(显然根据您的环境替换路径:
foreach ($f in Get-ChildItem "C:\Users\User\Videos\") { D:\Programs\mkvtoolnix\mkvpropedit.exe "C:\Users\User\Videos\" -d title }
答案3
经过几个小时无法破译“for”语句后,我发现了这一点
for %%i IN (*.txt) DO (mybatch.bat "%%i")
。
我将其修改为for %%i IN (*.mkv) DO (fix.bat "%%i")
并将文件命名为“fix2.bat”
虽然文件“fix.bat”包含"C:/Program Files/MKVToolNix\mkvpropedit.exe" %* -d title
我不明白它是如何工作的,但它将获取当前目录中的所有 mkv 文件并删除“title”属性。
答案4
创建 .bat 文件,然后将 mkv 文件拖放到 .bat 文件中。这将删除标签、标题、视频轨道名称和音轨名称。根据需要进行修改。
set "mkvproedit=C:\mkvtoolnix\mkvpropedit.exe"
for %%a in (*.mkv) do "%mkvproedit%" "%%a" --edit info --set title= --tags all: --edit track:v1 --set language=jpn --set name="" --edit track:a1 --set language=eng --set name=""
pause