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

回复 17# hlzj88
让你费心,多谢!
然而不知道这四条如何纠正?您能否再另写一个完整的?
我以为,14楼的截图说明,gawk所赐bat已经调用mkvmerge GUI成功,此时如果不直接关闭命令窗口,似乎要连续点击800个“确定”才能让mkvmerge GUI退出。
有点眉目了,只要解决-o(文件不存在)这个问题,就能再进一步。

TOP

本帖最后由 hlzj88 于 2016-1-8 22:07 编辑

还是我来贴吧  取了4行
"D:\影音及光盘\mkv专题\MKVToolnix 5.8.0 绿色多语版\mkvtoolnix\mkvtoolnix\mmg.exe" -o "H:\\800首\\[~1no" "--default-track" "1:yes" "--forced-track" "1:no" "--display-dimensions" "1:320x240" "-a" "0" "-d" "1" "-S" "-T" "--no-global-tags" "--no-chapters" "(" "I:\\[001].AVI" ")" "--track-order" "0:0,0:1,1:0"
"D:\影音及光盘\mkv专题\MKVToolnix 5.8.0 绿色多语版\mkvtoolnix\mkvtoolnix\mmg.exe" -o "H:\\800首\\[~1no" "--default-track" "1:yes" "--forced-track" "1:no" "--display-dimensions" "1:320x240" "-a" "0" "-d" "1" "-S" "-T" "--no-global-tags" "--no-chapters" "(" "I:\\[002].AVI" ")" "--track-order" "0:0,0:1,1:0"
"D:\影音及光盘\mkv专题\MKVToolnix 5.8.0 绿色多语版\mkvtoolnix\mkvtoolnix\mmg.exe" -o "H:\\800首\\[~1no" "--default-track" "1:yes" "--forced-track" "1:no" "--display-dimensions" "1:320x240" "-a" "0" "-d" "1" "-S" "-T" "--no-global-tags" "--no-chapters" "(" "I:\\[003].AVI" ")" "--track-order" "0:0,0:1,1:0"
"D:\影音及光盘\mkv专题\MKVToolnix 5.8.0 绿色多语版\mkvtoolnix\mkvtoolnix\mmg.exe" -o "H:\\800首\\[~1no" "--default-track" "1:yes" "--forced-track" "1:no" "--display-dimensions" "1:320x240" "-a" "0" "-d" "1" "-S" "-T" "--no-global-tags" "--no-chapters" "(" "I:\\[004].AVI" ")" "--track-order" "0:0,0:1,1:0"

下午,我echo时,他的这些可以完全echo,在for 里运行报错,,经查为  不应有"--track-order"  ,因此用set.
目的,学习批处理

TOP

回复 15# gawk
用4楼的代码,弹出命令行窗口,但按任意键,却退出了。

TOP

请执行4楼的代码,把代码生成的3.txt压缩之后传上来看看。
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

回复 12# gawk
感谢!
文件不存在,如何改?

TOP

回复 12# gawk
我以为我上面已经解决了他的问题,,只需把echo %xx% "(" "I:\\[!n:~1!].AVI" ")" %yy%>>3.txt两端的echo  与 >>3.txt 去掉,即可。也不知他测试结果咋样
目的,学习批处理

TOP

回复 10# hlzj88


我没有环境,无法测试。转义试试吧。

@echo off&setlocal enabledelayedexpansion

for /l %%i in (1,1,800) do (set /a n=1000+%%i

"D:\影音及光盘\mkv专题\MKVToolnix 5.8.0 绿色多语版\mkvtoolnix\mkvtoolnix\mmg.exe" -o "H:\\800首\\[!n:~1!].mkv"--forced-track" "0:no" "--default-track" "1:yes" "--forced-track" "1:no" "--display-dimensions" "1:320x240" "-a" "0" "-d" "1" "-S" "-T" "--no-global-tags" "--no-chapters" "^(" "I:\\[!n:~1!].AVI" "^)" "--track-order" "0:0,0:1,1:0"

)

pause
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

回复 9# c_mang


    bat调用mkvmerge的这个想法可以行得通
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

他代码的错  此时不应有  "--track-order"
目的,学习批处理

TOP

回复 7# gawk
谢谢!
也正是想到mkvmerge是开源软件,不同于其他收费软件那样封闭,或许通过写批处理能解决这个问题。
不知这个想法对不对?

TOP

namejm,,还有坛子里的其他高手,羡慕的紧,只是自己没有一点代码方面的知识,学来也只是门外汉。

不知上面的代码可用否, 再,你附上第二个,什么意思,,
目的,学习批处理

TOP

2,还有,从mkvmerge复制的命令行有什么作用?

这个跟批处理没有关系,全都是 mkvmerge 本身的参数,具体什么意思需要查看它自己的手册。
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

再请教,这样写的批处理为什么只一闪而过,不能运行?

把你的代码保存为 C:\test.bat
打开一个命令行窗口并执行 C:\test.bat
把报错信息发出来看看
Talk is cheap. Show me the code.
没事不要瞎扯淡,有能耐就把代码贴出来给我看。

TOP

回复 4# hlzj88
谢谢关注!
一、关于“路径I:\\001.avi,和平时的i:\001.avi不同”的说明。
    本次需要封装的800个avi文件原压制在一张非卖品的4.7G的光盘中。不知什么原因,在电脑中打开它每个文件都显示大小为1.99G,不要说全部导出得准备2T的硬盘,还有耗用的时间更无法计算,作为遗留问题我将它制作成镜像文件。近来发现mkvtoolnix能直接添加虚拟光驱中的影音文件并成功封装另存,更为重要的它几乎还原了应有的大小。

    因此“路径I:\\001.avi”是虚拟光驱的盘符路径。

二、再附上从mkvmerge复制的命令行(002.avi-002.mkv)如下:
"mkvmerge" -o "H:\\800首\\002.mkv"  "--forced-track" "0:no" "--forced-track" "1:no" "-a" "1" "-d" "0" "-S" "-T" "--no-global-tags" "--no-chapters" "(" "I:\\002.AVI" ")" "--track-order" "0:0,0:1"

三、几年前在读书论坛幸遇批处理的大佬namejm,得其帮助从哈佛下载到珍贵的资料,由此切身感受到批处理的神奇之处,借此再向他表达敬意!

TOP

本帖最后由 hlzj88 于 2016-1-8 15:45 编辑

你的1 2 问不懂。。仅就第三问,按你的代码直接运行会报错。
  1. @echo off&setlocal enabledelayedexpansion
  2. set xx="D:\影音及光盘\mkv专题\MKVToolnix 5.8.0 绿色多语版\mkvtoolnix\mkvtoolnix\mmg.exe" -o "H:\\800首\\[!n:~1!].mkv"--forced-track" "0:no" "--default-track" "1:yes" "--forced-track" "1:no" "--display-dimensions" "1:320x240" "-a" "0" "-d" "1" "-S" "-T" "--no-global-tags" "--no-chapters"
  3. set yy="--track-order" "0:0,0:1,1:0"
  4. for /l %%i in (1,1,800) do (set /a n=1000+%%i
  5. echo %xx% "(" "I:\\[!n:~1!].AVI" ")" %yy%>>3.txt
  6. )
  7. pause
复制代码
且 你的路径I:\\001.avi,和平时的i:\001.avi不同,,也许是你软件的用法。另你最后的I:\\[!n:~1!].AVI,,,不知对否。
目的,学习批处理

TOP

返回列表