无法使Mkvmerge适用于所有子文件夹

时间:2018-01-13 14:25:47

标签: mkv

我是mkvmerge个批处理文件的新手。

最近,我尝试编写一个批处理文件,将所有*.flv转换为*.mkv为root,然后转换为其下的所有子文件夹。我用谷歌搜索并设法提出这个批处理文件,我复制并更改了一些代码。仅当您将mkvmerge.exe放在需要更改的所有子文件夹中时,它才有效。

批处理文件的内容:

setlocal enableDelayedExpansion

set mkvmerge="D:\mkvmerge.exe"

for /d /r %%D in (*) do (
    pushd %%D

set files=

for %%A IN (*.flv) do ( mkvmerge.exe -o "remux-%%~nA.mkv" "%%~A") 

if not "!files!"=="" %mkvmerge% -o "output.mkv" !files:~2!

popd
)
pause

问题1: 如何指向mkvmerge.exe的路径,以便它能正常工作?

问题2: 如何删除" remux"从转换后的mkv文件? 我觉得这就行了 ( mkvmerge.exe -o "remux-%%~nA.mkv" "%%~A"),但不知道该怎么做。

更新:无视问题2,我设法将其替换为( mkvmerge.exe -o "%%~nA.mkv" "%%~A")

请帮我解答问题1.

1 个答案:

答案 0 :(得分:0)

抱歉打扰了,我解决了 只需将mkvmerge.exe复制到C:\(根文件夹)并在批处理文件中指向它

完成工作批处理文件

@echo off

for / d / r %% D in(*)do(     pushd %% D

set files =

for %% A IN(* .flv)do(c:\ mkvmerge.exe -o" %% ~nA.mkv"" %% ~A")

如果不是"!文件!" =="" %mkvmerge%-o" output.mkv" !文件:〜2! POPD )

暂停