无忧启动论坛

标题: 按照序号合并文件怎么弄? [打印本页]

作者: 窄口牛    时间: 2020-11-29 07:21
标题: 按照序号合并文件怎么弄?
本帖最后由 窄口牛 于 2020-11-29 08:32 编辑

需要考虑两位00开始,三位000开始,四位0000开始,一部电影的块儿也就一千来个吧,做到2000应该够了。分享现在合并视频的成品,合并前用重命名软件修改文件名称,复制一下电影名称,然后双击,选择要合并的文件夹,合并后的文件在当前目录。
  1. @echo off
  2. Setlocal enabledelayedexpansion
  3. reg query HKU\S-1-5-20>nul || echo;CreateObject^("Shell.Application"^).ShellExecute "%~f0", "", "", "runas", 1 > "%temp%\getadmin.vbs" && cscript //b "%temp%\getadmin.vbs" && exit /b & del "%temp%\getadmin.vbs" /f /q>nul 2>nul
  4. pushd "%CD%"&& CD /D "%~dp0"
  5. for /f %%a in ('mshta "javascript:var s=clipboardData.getData('text');if(s)new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(s);close();"^|more') do (set name=%%a)
  6. for /f "delims=" %%a in ('mshta "%~f0"') do set path1=%%a
  7. for /f "delims=" %%a in ('dir "!path1!" /b') do (
  8. if %%a LSS 10 (ren "!path1!\%%a" 00%%a) else (
  9. if %%a LSS 100 (ren "!path1!\%%a" 0%%a) ))
  10. del "!path1!\index.m3u8" /q
  11. copy /b "!path1!\*.*" %name%.mp4
  12. pause>nul
  13. <script>
  14. var Shell = new ActiveXObject("Shell.Application");
  15. var Folder = Shell.BrowseForFolder(0, "请选择文件夹", 0); //起始目录为:桌面
  16. if (Folder != null) {
  17.     Folder = Folder.items();
  18.     Folder = Folder.item();
  19.     Folder = Folder.Path;
  20.     new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(Folder);
  21. }
  22. close();
  23. </script>






  24. pause>nul
复制代码



作者: 窄口牛    时间: 2020-11-29 07:25
本帖最后由 窄口牛 于 2020-11-29 08:28 编辑

问题源自刚看过的一部电影,它本身不是时序的,导致我下载了几次,感觉直接copy/b合并排序有问题。于是想干脆弄个写死,发现好难。建立测试
  1. @echo off
  2. Setlocal enabledelayedexpansion
  3. reg query HKU\S-1-5-20>nul || echo;CreateObject^("Shell.Application"^).ShellExecute "%~f0", "", "", "runas", 1 > "%temp%\getadmin.vbs" && cscript //b "%temp%\getadmin.vbs" && exit /b & del "%temp%\getadmin.vbs" /f /q>nul 2>nul
  4. pushd "%CD%"&& CD /D "%~dp0"
  5. md test1
  6. md test2
  7. for /l %%a in (100,1,199) do set a=%%a&echo !a:~1!>.\test1\!a:~1!.ts
  8. for /l %%a in (10000,1,11200) do set a=%%a&echo !a:~1!>.\test2\!a:~1!.ts
  9. pause>nul
复制代码



作者: dx163    时间: 2020-11-29 08:28
等高手来回复吧
作者: hanzsim    时间: 2020-11-29 08:59
DVD的?那么MediaCoder应该能做。使用功能->工具箱->tsMuxer UI。实在不行先使用MediaCoder把所有片断转成MKV,然后再使用MKVMerge GUI把它们合并。
作者: 江南一根葱    时间: 2020-11-29 10:18
用硕鼠合并不香嘛
作者: caocaofff    时间: 2020-11-29 11:20
按位数分开合并
作者: 窄口牛    时间: 2020-11-29 11:24
按四位合并就行,先把暂时不是四位的增加至四位,这样就简单些了。问题是怎么搞成从小往大的累加链。
作者: 窄口牛    时间: 2020-11-30 07:59
本帖最后由 窄口牛 于 2020-11-30 08:44 编辑

弄了个四位的,却只能到1136,再多就没了,或者开始跳序,悲哀的bat。




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3