同时循环处理2个不同文件名的批处理文件问题

问题描述 投票:0回答:1

我想制作一个批处理文件(Windows 10),以使用 mkvmerge 组合 2 个视频文件中的不同轨道!

我想使用循环自动执行此操作,以便处理两个不同目录中的所有文件。两个目录中的文件数量相同,并且排序正确。

例如:

files für videos1
在目录
1

files for videos2
在目录
2
中。 目录
finished Files
中的
joined

如果目录
1
2
中的文件名匹配,则循环是没有问题的:

for %%f in (1/*.mkv) do (
    mkvmerge --output "joined/%%f" --no-audio --no-subtitles "1/%%f" --no-video --no-chapters --no-global-tags --no-attachments "2/%%f"
)

不幸的是文件名不一样,现在我有一个问题,当文件名不同时如何更改这里的脚本?

自动处理应该是这样的:

1\1safrsrffm
&
2\file1fgdfgtr
->
finished\1safrsrffm

1\2dfsdffdd
&
2\file2fdewrrh
->
finished/2dfsdffdd

1\3dffdsfffm
&
2\file3fgfdggf
->
finished\3dffdsfffm

1\4dfggggg
&
2\file4dgfgdgf
->
finished\4dfggggg

loops batch-file filenames
1个回答
0
投票

就这么简单,正如我在你的问题中概述的那样:

@ECHO OFF
SETLOCAL

SET "dir1=u:\your files"
SET "dir2=u:\your results"

FOR /f "tokens=1*delims=:" %%u IN (' dir /s /b "%dir1%\*.mkv" ^|findstr /n "." ') DO (
 FOR /f "tokens=1*delims=:" %%U IN (' dir /s /b "%dir2%\*.mkv" ^|findstr /n "." ') DO (
  IF "%%u"=="%%U" ECHO merge "%%v" with "%%V" giving "%%~nv"
 )
)
GOTO :EOF
© www.soinside.com 2019 - 2024. All rights reserved.