Board logo

标题: [文本处理] 【已解决】请教批处理MKV单次命令行-变量-加入循环命令遇到的问题 [打印本页]

作者: c_mang    时间: 2022-4-9 19:07     标题: 【已解决】请教批处理MKV单次命令行-变量-加入循环命令遇到的问题

本帖最后由 c_mang 于 2022-4-10 17:06 编辑

现有两版剧集视频文件,需采日版视频+中版双音频及字幕重新封装为MKV。
据网上教程步骤:
一:获取的单次任务处理的命令行
"C:\Program Files (x86)\MKVToolNix\mkvmerge.exe" -o "E:\\日版\\01.mkv"  "--forced-track" "0:no" "-d" "0" "-A" "-S" "-T" "--no-global-tags" "--no-chapters" "(" "E:\\日版\\01.mp4" ")" "--language" "1:chi" "--track-name" "1:国语" "--default-track" "1:yes" "--forced-track" "1:no" "--language" "2:jpn" "--track-name" "2:日语" "--default-track" "2:no" "--forced-track" "2:no" "--language" "3:chi" "--track-name" "3:中字" "--default-track" "3:yes" "--forced-track" "3:no" "-a" "1,2" "-s" "3" "-D" "-T" "--no-global-tags" "--no-chapters" "(" "E:\\中版\\01.mkv" ")" "--track-order" "0:0,1:1,1:2,1:3"

二:将具体文件名变成变量。
  1. @echo off
  2. set topath="E:\\日版\\"
  3. set frompath=""E:\\日版\\"
  4. set frompath1="E:\\中版\\"
  5. "C:\Program Files (x86)\mkvtoolnix\mkvmerge.exe" -o "%topath%01.mkv"  "--forced-track" "0:no" "-d" "0" "-A" "-S" "-T" "--no-global-tags" "--no-chapters" "(" "E:\\日版\\01.mp4" ")" "--language" "1:chi" "--track-name" "1:国语" "--default-track" "1:yes" "--forced-track" "1:no" "--language" "2:jpn" "--track-name" "2:日语" "--default-track" "2:no" "--forced-track" "2:no" "--language" "3:chi" "--track-name" "3:中字" "--default-track" "3:yes" "--forced-track" "3:no" "-a" "1,2" "-s" "3" "-D" "-T" "--no-global-tags" "--no-chapters" "(" "%frompath1%01.mkv" ")" "--track-order" "0:0,1:1,1:2,1:3"
复制代码
——粘贴到命令提示符运行成功

三:加入循环命令。
  1. @echo off
  2. set topath="E:\\日版\\"
  3. set frompath=""E:\\日版\\"
  4. set frompath1="E:\\中版\\"
  5. pushd %frompath%
  6. for /f "tokens=*" %%i in ('dir/b *.mp4') do (call :merge %topath%%%~ni".mkv"   %frompath%%%i   %frompath1%%%i
  7. pause
  8. :merge
  9. "C:\Program Files (x86)\mkvtoolnix\mkvmerge.exe" -o "%1"  "--forced-track" "0:no" "-d" "0" "-A" "-S" "-T" "--no-global-tags" "--no-chapters" "(" "%2" ")" "--language" "1:chi" "--track-name" "1:国语" "--default-track" "1:yes" "--forced-track" "1:no" "--language" "2:jpn" "--track-name" "2:日语" "--default-track" "2:no" "--forced-track" "2:no" "--language" "3:chi" "--track-name" "3:中字" "--default-track" "3:yes" "--forced-track" "3:no" "-a" "1,2" "-s" "3" "-D" "-T" "--no-global-tags" "--no-chapters" "(" "%3" ")" "--track-order" "0:0,1:1,1:2,1:3"
  10. )
复制代码
——报错:
pushd %frompath%
for /f "tokens=*" %%i in ('dir/b *.mp4') do (call :merge %topath%%%~ni".mkv"   %frompath%%%i   %frompath1%%%i
此时不应有 %%i。
期待高手指点,谢谢!
作者: Batcher    时间: 2022-4-9 19:48

回复 1# c_mang


子函数需要放在for循环外面
  1. @echo off
  2. set topath="E:\\日版\\"
  3. set frompath="E:\\日版\\"
  4. set frompath1="E:\\中版\\"
  5. pushd %frompath%
  6. for /f "tokens=*" %%i in ('dir /b *.mp4') do (
  7.     call :merge %topath%%%~ni".mkv" %frompath%%%i %frompath1%%%i
  8.     pause
  9. )
  10. goto :eof
  11. :merge
  12. "C:\Program Files (x86)\mkvtoolnix\mkvmerge.exe" -o "%1"  "--forced-track" "0:no" "-d" "0" "-A" "-S" "-T" "--no-global-tags" "--no-chapters" "(" "%2" ")" "--language" "1:chi" "--track-name" "1:国语" "--default-track" "1:yes" "--forced-track" "1:no" "--language" "2:jpn" "--track-name" "2:日语" "--default-track" "2:no" "--forced-track" "2:no" "--language" "3:chi" "--track-name" "3:中字" "--default-track" "3:yes" "--forced-track" "3:no" "-a" "1,2" "-s" "3" "-D" "-T" "--no-global-tags" "--no-chapters" "(" "%3" ")" "--track-order" "0:0,1:1,1:2,1:3"
复制代码

作者: c_mang    时间: 2022-4-9 19:59

回复 2# Batcher
另存bat运行——
mkvmerge v6.0.0 ('Coming Up For Air') built on Jan 20 2013 09:52:00
Error: The file 'E:\\中版\01.mp4' could not be opened for reading: open file error.
请按任意键继续. . .
作者: Batcher    时间: 2022-4-9 20:07

回复 3# c_mang


我只是修正了你代码里面的语法错误,别的没改。
你确认一下 E:\\中版\01.mp4 是否存在?
为什么你的代码里面定义变量的时候都是两个\呢?有啥特殊要求吗
作者: c_mang    时间: 2022-4-9 20:12

本帖最后由 c_mang 于 2022-4-9 20:16 编辑

回复 4# Batcher
感谢老大亲自指点!
"E:\中版\01.mkv"——这是现复制的中版第一话路径。
变量的时候都是两个\
这是照搬来的,我是初学。
我忽略了,日版视频是MP4+中版双音频及字幕是MKV。
如何修正?
作者: Batcher    时间: 2022-4-9 20:51

回复 5# c_mang


你试试都改成一个\会是啥情况呢?
日版视频是MP4+中版双音频及字幕是MKV。

我看不懂你的实际需求,能否给个真实的例子?
作者: c_mang    时间: 2022-4-9 21:36

回复 6# Batcher
让您费心了!
准备的素材:
1,E:\\动漫类\\外国卷\\东映 三国志\\横山光輝 三国志 全47話\\[日版仅视频]横山光輝 三国志 全47話640x480\\横山光輝 三国志 第01話 「桃園の誓い」.mp4【共47话】
2,E:\\动漫类\\外国卷\\东映 三国志\\横山光輝 三国志 全47話\\横山光辉-三国志-47话-[国日双语]含 (720x480vobsub) 字幕\\横山光辉三国志EP01(国日双语)桃园三结义.mkv【共47话】
由于MKV单次任务处理的命令行可以将素材1的视频与素材2的两规音频+1轨字幕(其余的删除)混装为新的MKV文件,于是想用批处理一次性完成47话的封装。
因原文件所在路径较长,又兼日语、简繁交错文件名,故更改文件名为序号标识,再移动至E盘根目录下。
不知是不是没有区分素材1的视频是.mp4后缀,而素材2是.mkv所导致问题的出现?
作者: Batcher    时间: 2022-4-9 21:47

回复 7# c_mang


不好意思,我没有从事过你这么专业的工作,所以还是不太清楚。
你试试把用以下代码(不要做任何增删改)处理这例子里面的文件,然后截图发出来我看看。
  1. set topath="E:\日版\"
  2. set frompath="E:\日版\"
  3. set frompath1="E:\中版\"
  4. pushd %frompath%
  5. for /f "tokens=*" %%i in ('dir /b *.mp4') do (
  6.     call :merge %topath%%%~ni".mkv" %frompath%%%i %frompath1%%%i
  7.     pause
  8. )
  9. goto :eof
  10. :merge
  11. "C:\Program Files (x86)\mkvtoolnix\mkvmerge.exe" -o "%1"  "--forced-track" "0:no" "-d" "0" "-A" "-S" "-T" "--no-global-tags" "--no-chapters" "(" "%2" ")" "--language" "1:chi" "--track-name" "1:国语" "--default-track" "1:yes" "--forced-track" "1:no" "--language" "2:jpn" "--track-name" "2:日语" "--default-track" "2:no" "--forced-track" "2:no" "--language" "3:chi" "--track-name" "3:中字" "--default-track" "3:yes" "--forced-track" "3:no" "-a" "1,2" "-s" "3" "-D" "-T" "--no-global-tags" "--no-chapters" "(" "%3" ")" "--track-order" "0:0,1:1,1:2,1:3"
复制代码

作者: c_mang    时间: 2022-4-9 22:43

回复 8# Batcher
折腾半天截图上传不了,这是文字拷贝——

C:\Program Files (x86)\MKVToolNix>set topath="E:\日版\"

C:\Program Files (x86)\MKVToolNix>set frompath="E:\日版\"

C:\Program Files (x86)\MKVToolNix>set frompath1="E:\中版\"

C:\Program Files (x86)\MKVToolNix>pushd "E:\日版\"

E:\日版>for /F "tokens=*" %i in ('dir /b *.mp4') do (
call :merge "E:\日版\"%~ni".mkv" "E:\日版\"%i "E:\中版\"%i
pause
)

E:\日版>(
call :merge "E:\日版\"01".mkv" "E:\日版\"01.mp4 "E:\中版\"01.mp4
pause
)

E:\日版>"C:\Program Files (x86)\mkvtoolnix\mkvmerge.exe" -o ""E:\日版\"01".mkv""  "--forced-track" "0:no" "-d" "0" "-A" "-S" "-T" "--no-global-tags" "--no-chapters" "(" ""E:\日版\"01.mp4" ")" "--language" "1:chi" "--track-name" "1:国语" "--default-track" "1:yes" "--forced-track" "1:no" "--language" "2:jpn" "--track-name" "2:日语" "--default-track" "2:no" "--forced-track" "2:no" "--language" "3:chi" "--track-name" "3:中字" "--default-track" "3:yes" "--forced-track" "3:no" "-a" "1,2" "-s" "3" "-D" "-T" "--no-global-tags" "--no-chapters" "(" ""E:\中版\"01.mp4" ")" "--track-order" "0:0,1:1,1:2,1:3"
mkvmerge v6.0.0 ('Coming Up For Air') built on Jan 20 2013 09:52:00
Error: The closing parenthesis ')' are missing.
请按任意键继续. . .
作者: c_mang    时间: 2022-4-9 22:51

本帖最后由 c_mang 于 2022-4-9 22:52 编辑

https://data.kexinshe.com:9000/sticker/1020090

作者: c_mang    时间: 2022-4-10 05:45

回复 4# Batcher
根据您的指点:你确认一下 E:\\中版\01.mp4 是否存在?
查:我的恰恰是"E:\\中版\\01.MKV"
为此,
我找到了操作思路参考的旧贴原文——

[影音合成] 关于mkvtoolnix批量处理的经验分享
原文地址:https://www.deainx.me/forum.php? ... D%D1%E9%B7%D6%CF%ED

原贴是:
set frompath="D:\\comic\\Dragon.Ball\\cc\\"
set frompath1="D:\\comic\\Dragon.Ball\\aa\\"
pushd %frompath%
for /f "tokens=*" %%i in ('dir/b *.mkv') do call :merge %topath%%%~ni".mkv" %frompath%%%i %frompath1%%%i %frompath1%%%~ni".ssa"
分析:
set frompath=包含视频音频,MKV后缀
set frompath1=仅一轨字幕文件,ssa后缀

而我的素材:
set frompath=""E:\\日版\\"——仅视频(无音频),MP4后缀
set frompath1="E:\\中版\\"——勾选国语、日语两条音轨和vobsub字幕,MKV后缀

pushd %frompath%
for /f "tokens=*" %%i in ('dir/b *.mp4') do (call :merge %topath%%%~ni".mkv"   %frompath%%%i   %frompath1%%%i

——如何认可"E:\\中版\\01.MKV"呢?
作者: Batcher    时间: 2022-4-10 09:27

回复 9# c_mang


Q-07:怎样把CMD窗口里的结果复制出来?
http://bbs.bathome.net/thread-3473-1-1.html

从这个报错信息来推测,有可能是双引号不配对导致的错误,你把这个代码的执行结果再发出来看看:
  1. set "topath=E:\日版"
  2. set "frompath=E:\日版"
  3. set "frompath1=E:\中版"
  4. pushd %frompath%
  5. for /f "tokens=*" %%i in ('dir /b *.mp4') do (
  6.     call :merge "%topath%\%%~ni.mkv" "%frompath%\%%i" "%frompath1%\%%i"
  7.     pause
  8. )
  9. goto :eof
  10. :merge
  11. "C:\Program Files (x86)\mkvtoolnix\mkvmerge.exe" -o "%~1"  "--forced-track" "0:no" "-d" "0" "-A" "-S" "-T" "--no-global-tags" "--no-chapters" "(" "%~2" ")" "--language" "1:chi" "--track-name" "1:国语" "--default-track" "1:yes" "--forced-track" "1:no" "--language" "2:jpn" "--track-name" "2:日语" "--default-track" "2:no" "--forced-track" "2:no" "--language" "3:chi" "--track-name" "3:中字" "--default-track" "3:yes" "--forced-track" "3:no" "-a" "1,2" "-s" "3" "-D" "-T" "--no-global-tags" "--no-chapters" "(" "%~3" ")" "--track-order" "0:0,1:1,1:2,1:3"
复制代码

作者: Batcher    时间: 2022-4-10 09:28

回复 9# c_mang


你用这个方法上传截图的时候遇到什么问题了吗:
http://bbs.bathome.net/thread-60985-1-1.html
作者: c_mang    时间: 2022-4-10 10:01

回复 13# Batcher
截图过来了

作者: c_mang    时间: 2022-4-10 10:04

回复 12# Batcher
如果"E:\中版\01.mp4"改为"E:\中版\01.MKV"似乎就可以了。
作者: Batcher    时间: 2022-4-10 10:10

回复 15# c_mang


    好的,那你就把12楼第7行的mkv改成mp4吧
作者: c_mang    时间: 2022-4-10 10:37

回复 16# Batcher

把第七行简单改MKV为MP4还是不行
call :merge "%topath%\%%~ni.mp4" "%frompath%\%%i" "%frompath1%\%%i"
似乎
frompath1所指向的E:\中文01.mkv仍没有着落。
作者: qixiaobin0715    时间: 2022-4-10 10:41

%%~ni.m??或%%~ni.m*
作者: c_mang    时间: 2022-4-10 10:46

回复 18# qixiaobin0715

call :merge "E:\日版\01.mp4" "E:\日版\01.mp4" "E:\中版\01.mp4"
作者: c_mang    时间: 2022-4-10 10:56

回复 16# Batcher

我的本意思:
    call :merge "%topath%\%%~ni.mkv" "%frompath%\%%i~ni.mp4" "%frompath1%\%%i~ni.mkv"
但是这种表述是不被认可的。
作者: Batcher    时间: 2022-4-10 11:39

回复 20# c_mang


语法应该是这样:
call :merge "%topath%\%%~ni.mkv" "%frompath%\%%~ni.mp4" "%frompath1%\%%~ni.mkv"
不知道你的实际需求是不是这样。
作者: c_mang    时间: 2022-4-10 12:14

回复 21# Batcher
是这样,非常感谢!
Progress: 100%
The cue entries (the index) are being written...
Muxing took 6 seconds.
请按任意键继续. . .
现在只要把“请按任意键继续. . .”改成自动连续完成就大功告成了!
如何改动呢?
作者: Batcher    时间: 2022-4-10 12:17

回复 22# c_mang


    把代码里面的pause删掉
作者: c_mang    时间: 2022-4-10 13:00

回复 23# Batcher

问题解决,衷心感谢!
再请教——
如果原两版的日语文件名以及中文简繁交错文件名不作修改,那么【共47话】能不能一次性批处理呢?最后是不是文件名均依.mp4格式逐一排列?
两集路径及第一回名称:
E:\\动漫类\\外国卷\\东映 三国志\\横山光輝 三国志 全47話\\[日版仅视频]横山光輝 三国志 全47話640x480\\横山光輝 三国志 第01話 「桃園の誓い」.mp4
E:\\动漫类\\外国卷\\东映 三国志\\横山光輝 三国志 全47話\\横山光辉-三国志-47话-[国日双语]含 (720x480vobsub) 字幕\\横山光辉三国志EP01(国日双语)桃园三结义.mkv
作者: Batcher    时间: 2022-4-10 17:53

回复 24# c_mang


看看这个代码结果如何:
  1. set "topath=E:\日版"
  2. set "frompath=E:\动漫类\外国卷\东映 三国志\横山光輝 三国志 全47話\[日版仅视频]横山光輝 三国志 全47話640x480"
  3. set "frompath1=E:\动漫类\外国卷\东映 三国志\横山光輝 三国志 全47話\横山光辉-三国志-47话-[国日双语]含 (720x480vobsub) 字幕"
  4. set "FileCount=0"
  5. setlocal enabledelayedexpansion
  6. for /f "delims=" %%i in ('dir /b /a-d "%frompath%\*.mp4"') do (
  7.     set /a FileCount+=1
  8. )
  9. set "NumBegin=1001"
  10. set /a NumEnd=NumBegin+FileCount-1
  11. for /l %%i in (!NumBegin!,1,!NumEnd!) do (
  12.     set "NumCurrent=%%i"
  13.     for /f "delims=" %%j in ('dir /b /a-d "%frompath%\*!NumCurrent:~-2!*.mp4"') do (
  14.         for /f "delims=" %%k in ('dir /b /a-d "%frompath1%\*EP!NumCurrent:~-2!*.mkv"') do (
  15.             set "FileCN=%%k"
  16.             call :merge "%topath%\%%~nj.mkv" "%frompath%\%%~nj.mp4" "%frompath1%\%%~nk.mkv"
  17.             pause
  18.         )
  19.     )
  20. )
  21. goto :eof
  22. :merge
  23. "C:\Program Files (x86)\mkvtoolnix\mkvmerge.exe" -o "%~1"  "--forced-track" "0:no" "-d" "0" "-A" "-S" "-T" "--no-global-tags" "--no-chapters" "(" "%~2" ")" "--language" "1:chi" "--track-name" "1:国语" "--default-track" "1:yes" "--forced-track" "1:no" "--language" "2:jpn" "--track-name" "2:日语" "--default-track" "2:no" "--forced-track" "2:no" "--language" "3:chi" "--track-name" "3:中字" "--default-track" "3:yes" "--forced-track" "3:no" "-a" "1,2" "-s" "3" "-D" "-T" "--no-global-tags" "--no-chapters" "(" "%~3" ")" "--track-order" "0:0,1:1,1:2,1:3"
复制代码

作者: c_mang    时间: 2022-4-10 19:48

回复 25# Batcher

感激不尽!
可以运行,但不知为何缺14话,也就是跳过去了?
显示的是日文名-【横山光輝 三国志 第01話 「桃園の誓い」.mkv】,很棒!
作者: Batcher    时间: 2022-4-10 20:06

回复 26# c_mang


    请参考9楼把执行结果发出来我看下。还有就是把14话的中文、日文的两个完整文件名也发出来。
作者: c_mang    时间: 2022-4-10 20:28

回复 27# Batcher
先发图
[img][/img]
作者: c_mang    时间: 2022-4-10 20:44

回复 27# Batcher
让您费心了!
日文版:
横山光輝 三国志 第06話 「名馬・赤兎馬」.mp4
横山光輝 三国志 第07話 「暴虐将軍・董卓」.mp4
横山光輝 三国志 第14話 「乱世の美女・前編」.mp4
横山光輝 三国志 第15話 「乱世の美女・後編」.mp4
横山光輝 三国志 第18話 「酔虎・号泣」.mp4
横山光輝 三国志 第26話 「乱世の伏竜・孔明」.mp4
横山光輝 三国志 第29話 「玄徳軍・大結集」.mp4
横山光輝 三国志 第32話 「浪士・巣福」.mp4
横山光輝 三国志 第35話 「孔明・初陣」.mp4
横山光輝 三国志 第40話 「美丈夫・周瑜」.mp4
横山光輝 三国志 第44話 「黄蓋・苦肉の策」.mp4
横山光輝 三国志 第45話 「鳳雛・連環の計」.mp4
横山光輝 三国志 第46話 「赤壁の戦い・前編」.mp4
横山光輝 三国志 第47話 「赤壁の戦い・後編」.mp4
中文版:
横山光辉三国志EP06(国日双语)宝马配英雄.mkv
横山光辉三国志EP07(国日双语)残暴的董卓.mkv
横山光辉三国志EP14(国日双语)貂蝉计弄董卓.mkv
横山光辉三国志EP15(国日双语)长安城董卓归天.mkv
横山光辉三国志EP18(国日双语)张飞酗酒失徐州.mkv
横山光辉三国志EP26(国日双语)乱世伏龙孔明.mkv
横山光辉三国志EP29(国日双语)会古城主臣聚义.mkv
横山光辉三国志EP32(国日双语)单福新野遇英主.mkv
横山光辉三国志EP35(国日双语)博望坡军师初用兵.mkv
横山光辉三国志EP40(国日双语)孔明用智激周瑜.mkv
横山光辉三国志EP44(国日双语)献密计黄盖受刑.mkv
横山光辉三国志EP45(国日双语)庞统巧授连环计.mkv
横山光辉三国志EP46(国日双语)赤壁之战(上).mkv
横山光辉三国志EP47(国日双语)赤壁之战(下)(大结局).mkv
作者: Batcher    时间: 2022-4-10 21:10

回复 29# c_mang
  1. set "topath=E:\日版"
  2. set "frompath=E:\动漫类\外国卷\东映 三国志\横山光輝 三国志 全47話\[日版仅视频]横山光輝 三国志 全47話640x480"
  3. set "frompath1=E:\动漫类\外国卷\东映 三国志\横山光輝 三国志 全47話\横山光辉-三国志-47话-[国日双语]含 (720x480vobsub) 字幕"
  4. set "FileCount=47"
  5. set "NumBegin=1001"
  6. set /a NumEnd=NumBegin+FileCount-1
  7. setlocal enabledelayedexpansion
  8. for /l %%i in (!NumBegin!,1,!NumEnd!) do (
  9.     set "NumCurrent=%%i"
  10.     for /f "delims=" %%j in ('dir /b /a-d "%frompath%\*!NumCurrent:~-2!*.mp4" 2^>nul') do (
  11.         for /f "delims=" %%k in ('dir /b /a-d "%frompath1%\*EP!NumCurrent:~-2!*.mkv" 2^>nul') do (
  12.             call :merge "%topath%\%%~nj.mkv" "%frompath%\%%~nj.mp4" "%frompath1%\%%~nk.mkv"
  13.             pause
  14.         )
  15.     )
  16. )
  17. goto :eof
  18. :merge
  19. "C:\Program Files (x86)\mkvtoolnix\mkvmerge.exe" -o "%~1"  "--forced-track" "0:no" "-d" "0" "-A" "-S" "-T" "--no-global-tags" "--no-chapters" "(" "%~2" ")" "--language" "1:chi" "--track-name" "1:国语" "--default-track" "1:yes" "--forced-track" "1:no" "--language" "2:jpn" "--track-name" "2:日语" "--default-track" "2:no" "--forced-track" "2:no" "--language" "3:chi" "--track-name" "3:中字" "--default-track" "3:yes" "--forced-track" "3:no" "-a" "1,2" "-s" "3" "-D" "-T" "--no-global-tags" "--no-chapters" "(" "%~3" ")" "--track-order" "0:0,1:1,1:2,1:3"
复制代码

作者: c_mang    时间: 2022-4-10 21:28

回复 30# Batcher
已测试,仍然少上面的14话。
从剔出的14话名称中,我已隐约觉察或是系统或软件对于日文的支持问题。像这种带点的字符【・】除非是日文系统可能容易识别。尽管Win10有日文输入法,似乎日文字库也不必安装,但具体运用到什么程度并不清楚。
老大以为如何?
作者: Batcher    时间: 2022-4-11 08:39

回复 31# c_mang


我的电脑上测试没有发现问题
处理到14的时候截图发出来我看下:
  1. chcp 65001
  2. set "topath=E:\日版"
  3. set "frompath=E:\动漫类\外国卷\东映 三国志\横山光輝 三国志 全47話\[日版仅视频]横山光輝 三国志 全47話640x480"
  4. set "frompath1=E:\动漫类\外国卷\东映 三国志\横山光輝 三国志 全47話\横山光辉-三国志-47话-[国日双语]含 (720x480vobsub) 字幕"
  5. set "FileCount=47"
  6. set "NumBegin=1001"
  7. set /a NumEnd=NumBegin+FileCount-1
  8. setlocal enabledelayedexpansion
  9. for /l %%i in (!NumBegin!,1,!NumEnd!) do (
  10.     set "NumCurrent=%%i"
  11.     echo ---!NumCurrent:~-2!
  12.     dir /b /a-d "%frompath%\*!NumCurrent:~-2!*.mp4"
  13.     for /f "delims=" %%j in ('dir /b /a-d "%frompath%\*!NumCurrent:~-2!*.mp4" 2^>nul') do (
  14.         dir /b /a-d "%frompath1%\*EP!NumCurrent:~-2!*.mkv"
  15.         for /f "delims=" %%k in ('dir /b /a-d "%frompath1%\*EP!NumCurrent:~-2!*.mkv" 2^>nul') do (
  16.             call :merge "%topath%\%%~nj.mkv" "%frompath%\%%~nj.mp4" "%frompath1%\%%~nk.mkv"
  17.             pause
  18.         )
  19.     )
  20. )
  21. goto :eof
  22. :merge
  23. "C:\Program Files (x86)\mkvtoolnix\mkvmerge.exe" -o "%~1"  "--forced-track" "0:no" "-d" "0" "-A" "-S" "-T" "--no-global-tags" "--no-chapters" "(" "%~2" ")" "--language" "1:chi" "--track-name" "1:国语" "--default-track" "1:yes" "--forced-track" "1:no" "--language" "2:jpn" "--track-name" "2:日语" "--default-track" "2:no" "--forced-track" "2:no" "--language" "3:chi" "--track-name" "3:中字" "--default-track" "3:yes" "--forced-track" "3:no" "-a" "1,2" "-s" "3" "-D" "-T" "--no-global-tags" "--no-chapters" "(" "%~3" ")" "--track-order" "0:0,1:1,1:2,1:3"
复制代码

作者: c_mang    时间: 2022-4-11 17:10

本帖最后由 c_mang 于 2022-4-11 17:17 编辑

回复 32# Batcher
抱歉,迟复了。
14是出错总数,详情名录在29楼,从6开始。



「名馬?赤兎馬」打上问号,是不是我的电脑不支持中心点符号?
作者: Batcher    时间: 2022-4-11 19:28

回复 33# c_mang


    32楼代码已更新,你把这个脚本保存为UTF-8编码,再次执行截图看看。
作者: c_mang    时间: 2022-4-11 21:06

回复 34# Batcher
另存UTF-8快速滚动后退出,无法截图。
又尝试另存Unicode没有反应。
作者: Batcher    时间: 2022-4-11 22:03

回复 35# c_mang


你用的是不是简体中文操作系统?Win7还是Win10?
作者: c_mang    时间: 2022-4-11 22:42

回复 36# Batcher

用的是简体中文Win10。
作者: Batcher    时间: 2022-4-11 22:50

回复 35# c_mang


    32楼代码每一行下面加一行pause,脚本保存为UTF-8编码,试试能否看到第几行代码出错的
作者: c_mang    时间: 2022-4-11 23:08

本帖最后由 c_mang 于 2022-4-11 23:09 编辑

回复 38# Batcher


再按继续快速滚动后自动退出。
作者: Batcher    时间: 2022-4-12 10:01

回复 39# c_mang


    请把这个脚本上传到网盘我试试
作者: c_mang    时间: 2022-4-12 21:54

回复 40# Batcher
白天忙病人,耽误了。
上传改UTF-8保存的以及+pause的两个bat。顺便把两种剧集实体一并附上,供您研究。
受累了!
链接: https://pan.baidu.com/s/1jb6_wOaS4F79fuECoBAjmA?pwd=ea82 提取码: ea82 复制这段内容后打开百度网盘手机App,操作更方便哦




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2