gpt4 book ai didi

windows - 批量合并文件夹和子文件夹中的视频文件

转载 作者:可可西里 更新时间:2023-11-01 11:49:42 28 4
gpt4 key购买 nike

我有大约 200 个文件夹,里面装满了 MPG 拆分文件。我想将每个文件夹的文件连接在一起。我在 stackoverflow 上的其他问题中找到了这个 BATCH 脚本。

@echo off &setlocal enabledelayedexpansion
cd /d "%sourcefolder%"
set "line="
for %%a in (*.mpg) do set line=!line! +"%%~a"
"C:\Program Files\MKVToolNix\mkvmerge.exe" -o "Output.mkv" %line:~2%

Combine mkv's in Windows (automated, not using a GUI)

效果很好,但问题是,我必须将 .bat 文件粘贴到大约 200 个文件夹中,然后运行大约 200 次。

谁能帮帮我。我如何从根文件夹运行此文件以合并/加入子文件夹中的所有文件,并在每个子文件夹中创建新的“output.mkv”文件或创建一个新文件夹,如“/OutputVideos”,名称或与子文件夹同名。

非常感谢您的帮助。谢谢

最佳答案

  • 使用for循环通过子目录/d递归枚举/r
  • 将工作目录更改为循环变量
  • 枚举 .mpg 文件并将名称连接到一个变量中(使用 delayed expansion )
  • 用那个变量调用mkvmerge(注意它以空格和+开头所以我们应该从索引2开始提取它的内容,索引是从0开始的表示第一个字符的索引为 0,我们需要的第三个字符的索引为 2)

将代码放在基本文件夹的concatenate.bat 文件中,批处理文件将处理所有子文件夹。

@echo off
setlocal enableDelayedExpansion

set mkvmerge="C:\Program Files\MKVToolNix\mkvmerge.exe"

for /d /r %%D in (*) do (
pushd %%D
set files=
for %%F in (*.mpg) do set files=!files! + ^( "%%F" ^)
if not "!files!"=="" %mkvmerge% -o "output.mkv" !files:~2!
popd
)
pause

关于windows - 批量合并文件夹和子文件夹中的视频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33043607/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com