[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 【已解决】请教批处理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。
期待高手指点,谢谢!

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

TOP

回复 39# c_mang


    请把这个脚本上传到网盘我试试
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

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

回复 38# Batcher


再按继续快速滚动后自动退出。

TOP

回复 35# c_mang


    32楼代码每一行下面加一行pause,脚本保存为UTF-8编码,试试能否看到第几行代码出错的
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 36# Batcher

用的是简体中文Win10。

TOP

回复 35# c_mang


你用的是不是简体中文操作系统?Win7还是Win10?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 34# Batcher
另存UTF-8快速滚动后退出,无法截图。
又尝试另存Unicode没有反应。

TOP

回复 33# c_mang


    32楼代码已更新,你把这个脚本保存为UTF-8编码,再次执行截图看看。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

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

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



「名馬?赤兎馬」打上问号,是不是我的电脑不支持中心点符号?

TOP

回复 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"
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

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

TOP

回复 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"
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 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

TOP

回复 27# Batcher
先发图
[img][/img]

TOP

返回列表