标题: [文件操作] 请问批处理如何将MP3文件批量合并? [打印本页]
作者: 每天几分 时间: 2022-7-24 20:19 标题: 请问批处理如何将MP3文件批量合并?
手里有几千mp3小说文件,需要按顺序每10个文件,合并为一个,文件名以第一个文件命名。
如:
0000_《多情剑客无情剑》(校对版全本)作者:古龙_前言.mp3
0001_《多情剑客无情剑》(校对版全本)作者:古龙_第一章 为什么.mp3
……
0009_《多情剑客无情剑》(校对版全本)作者:古龙_第九章 不可说.mp3
……
8000_《多情剑客无情剑》(校对版全本)作者:古龙_第八千章 前言.mp3
……
实现如下所示:
0000_《多情剑客无情剑》(校对版全本)作者:古龙_前言.mp3
0010_《多情剑客无情剑》(校对版全本)作者:古龙_第十章 好处多多.mp3
0020_《多情剑客无情剑》(校对版全本)作者:古龙_第二十章 怪怪的.mp3
……
作者: hlzj88 时间: 2022-7-24 21:50
以前有个软件,MP3 Splitter Joiner Pro
v4.2 用户名:tracky 注册码:MP808-729335-31556
作者: 每天几分 时间: 2022-7-24 22:20
回复 2# hlzj88
试了,无法批量处理的,跟我用的 MP3剪切合并大师 差不多,也是需要手动拖10个文件合并为一个的,数千上万mp3,每次拖10个,拖到啥时候呢。。。
作者: 每天几分 时间: 2022-7-24 23:29
用笨方法搞定了,我用au3自动脚本,加上 MP3剪切合并大师,前台操作搞定了,就是无法操作电脑,不过也无所谓,晚上挂机让它操作就行。- #Region ;**** 由 AccAu3Wrapper_GUI 创建指令 ****
- #AccAu3Wrapper_Outfile=每10个mp3合并为一个.exe
- #AccAu3Wrapper_UseUpx=y
- #AccAu3Wrapper_UseX64=n
- #AccAu3Wrapper_Res_Language=2052
- #AccAu3Wrapper_Res_requestedExecutionLevel=None
- #EndRegion ;**** 由 AccAu3Wrapper_GUI 创建指令 ****
- Global $Paused
- HotKeySet("{F1}", "Pause")
- HotKeySet("{F3}", "Continue")
- HotKeySet("{ESC}", "Terminate")
- ;HotKeySet("+!d", "ShowMessage") ;Shift-Alt-d
-
- WinActivate("MP3剪切合并大师V13.8 吾爱特别版(by旋风中的小聪明)")
- Sleep(500)
- ControlClick("MP3剪切合并大师V13.8 吾爱特别版(by旋风中的小聪明)","","Button1");添加mp3
- While 1
- Sleep(500)
- ToolTip('Script is "Run"', 0, 0)
- MouseClickDrag("left", 1024, 683, 1024, 465);选择10个mp3
- Sleep(500)
- MouseClick("left", 1354, 806, 1);打开
- Sleep(2000)
- ControlClick("MP3剪切合并大师V13.8 吾爱特别版(by旋风中的小聪明)","","Button6");开始转换
- Sleep(180000);等3分钟转换
- WinWait("MP3剪切合并大师V13.8 吾爱特别版(by旋风中的小聪明)")
- Sleep(500)
- WinActivate("MP3剪切合并大师V13.8 吾爱特别版(by旋风中的小聪明)")
- Sleep(500)
- MouseClick("left", 1062, 584, 1);转换完成,确定
- Sleep(500)
- MouseClick("left", 1792, 12, 1);最小化打开的目录
- Sleep(500)
- ControlClick("MP3剪切合并大师V13.8 吾爱特别版(by旋风中的小聪明)","","SysHeader321");全选源文件
- Sleep(500)
- MouseClick("left", 820, 551, 1);选最后一个文件
- Sleep(500)
- For $ix = 1 To 10 Step 1
- Send("{DELETE}");清空列表的10个文件
- Sleep(500)
- Next
- ControlClick("MP3剪切合并大师V13.8 吾爱特别版(by旋风中的小聪明)","","Button1");添加mp3
- MouseClickDrag("left", 1024, 683, 1024, 465);选择10个mp3 删除
- Send("{DELETE}") ;删除
- Sleep(500)
- WEnd
-
- Func Pause()
- $Paused = True
- TogglePause()
- EndFunc ;==>Pause
-
- Func Continue()
- $Paused = False
- TogglePause()
- EndFunc ;==>Continue
-
- Func TogglePause()
- While $Paused
- Sleep(100)
- ToolTip('Script is "Paused"', 0, 0)
- WEnd
- ; ToolTip("")
- EndFunc ;==>TogglePause
-
- Func Terminate()
- Exit 0
- EndFunc ;==>Terminate
-
- ;Func ShowMessage()
- ; MsgBox(4096, "", "This is a message.")
- ;EndFunc ;==>ShowMessage
复制代码
作者: 每天几分 时间: 2022-7-25 17:20
用2楼的3H3MP3SplitterJoinerPro 会快点,不用转换MP3的码率, 直接源码率,10秒不到就可以完成合并,转换码率的要3分钟。- #Region ;**** 由 AccAu3Wrapper_GUI 创建指令 ****
- #AccAu3Wrapper_Outfile=新每10个mp3合并为一个.exe
- #AccAu3Wrapper_UseUpx=y
- #AccAu3Wrapper_UseX64=n
- #AccAu3Wrapper_Res_Language=2052
- #AccAu3Wrapper_Res_requestedExecutionLevel=None
- #EndRegion ;**** 由 AccAu3Wrapper_GUI 创建指令 ****
- Global $Paused
- HotKeySet("{F1}", "Pause")
- HotKeySet("{F3}", "Continue")
- HotKeySet("{ESC}", "Terminate")
- ;HotKeySet("+!d", "ShowMessage") ;Shift-Alt-d
-
- WinActivate("MP3 Splitter Joiner Pro")
- Sleep(500)
- ControlClick("MP3 Splitter Joiner Pro","","Button2") ;添加mp3
- While 1
- Sleep(300)
- ToolTip('Script is "Run"', 0, 0)
- MouseClickDrag("left", 1068, 568, 1068, 353);选择10个mp3
- Sleep(500)
- MouseClick("left", 1348, 696, 1);打开
- Sleep(1000)
- ControlClick("MP3 Splitter Joiner Pro","","Button1");立即合并
- Sleep(1000);
- MouseClick("left", 930, 352, 1);选择第一个文件名
- Sleep(500)
- MouseClick("left", 855, 238, 1);回上一目录
- Sleep(500)
- MouseClick("left", 841, 471, 2);双击进入保存的文件夹
- Sleep(500)
- MouseClick("left", 1348, 696, 1);保存
- Sleep(6000);等待10秒转换
- ControlClick("MP3 Splitter Joiner Pro","","Button5");移除全部
- Sleep(500)
- ControlClick("MP3 Splitter Joiner Pro","","Button2") ;继续添加MP3
- Sleep(500)
- MouseClick("left", 855, 238, 1);返回目录
- Sleep(500)
- MouseClick("left", 830, 424, 2);双击进入原文件夹
- Sleep(500)
- MouseClickDrag("left", 1068, 568, 1068, 353);选择10个mp3 删除
- Sleep(500)
- Send("{DELETE}");删除
- Sleep(500)
- WEnd
-
- Func Pause()
- $Paused = True
- TogglePause()
- EndFunc ;==>Pause
-
- Func Continue()
- $Paused = False
- TogglePause()
- EndFunc ;==>Continue
-
- Func TogglePause()
- While $Paused
- Sleep(100)
- ToolTip('Script is "Paused"', 0, 0)
- WEnd
- ; ToolTip("")
- EndFunc ;==>TogglePause
-
- Func Terminate()
- Exit 0
- EndFunc ;==>Terminate
-
- ;Func ShowMessage()
- ; MsgBox(4096, "", "This is a message.")
- ;EndFunc ;==>ShowMessage
复制代码
作者: idwma 时间: 2022-7-25 17:52
本帖最后由 idwma 于 2022-7-25 17:55 编辑
可以试试这样- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /b *.mp3') do (
- set /a b+=1
- if not defined a (set "a=%%i") else (
- if !b! leq 10 (copy /b "!a!"+"%%i" "!a!") else (
- set "a=%%i"
- set b=
- )
- )
- )
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |