标题: [文本处理] 求助批处理根据wav时长,找比它长一点的mp3 [打印本页]
作者: 877 时间: 2023-10-31 08:28 标题: 求助批处理根据wav时长,找比它长一点的mp3
已知:A目录下-多子文件夹内各有一个wav
另外指定的D盘\mp3目录有N个长短不一的mp3文件
想实现用批处理,从D盘\mp3目录各移动一个到相应的A目录下-多子文件夹内。(形成各子文件夹内1个wav和1个mp3)
要求所移动的mp3时长要比wav时长*长一点。
求大佬指教~
作者: czjt1234 时间: 2023-10-31 13:33
怎么样才算是长一点,而不是长了两点
作者: 877 时间: 2023-10-31 15:00
回复 2# czjt1234
大佬好,加1秒~300秒都算,因为mp3文件夹里面太多音频了~
求大佬帮忙☕
作者: terse 时间: 2023-10-31 18:53
试一下BAT_JS混编呢- @set @x=0 /* @echo off&cscript -nologo -e:jscript %0 "D:\mp3" "E:\data" & pause & exit */
- var pad = function (n) { return ('0'+Math.floor(n)).slice(-2)}
- var fso=new ActiveXObject("Scripting.FileSystemObject");
- var WMP = new ActiveXObject("WMPlayer.OCX");
- var i = 0, mediaFiles = [];
-
- var Folder=fso.GetFolder(WScript.Arguments.Item(0));
- for(var e=new Enumerator(Folder.Files);!e.atEnd();e.moveNext()){
- var f=e.item();
- var ext = f.Name.split('.').pop().toLowerCase();
- if (ext === 'mp3') {
- mediaFiles[i++] = {file: f, duration: Math.floor(WMP.newMedia(f).GetItemInfo("Duration"))};
- }
- }
-
- mediaFiles.sort(function(a, b) { return a.duration - b.duration});
-
- function binarySearch(mediaFiles, t) {
- var left = 0, right = mediaFiles.length - 1;
- while (left < right) {
- var mid = Math.floor((left + right) >> 1);
- if (mediaFiles[mid].duration > t) {
- right = mid;
- } else {
- left = mid + 1;
- }
- }
- return (left < mediaFiles.length) ? left : null;
- }
-
- var Folder=fso.GetFolder(WScript.Arguments.Item(1));
- for(var e=new Enumerator(Folder.SubFolders);!e.atEnd();e.moveNext()){
- var subFolder=e.item();
- for(var f=new Enumerator(subFolder.Files);!f.atEnd();f.moveNext()){
- var file=f.item();
- var ext = file.Name.split('.').pop().toLowerCase();
- if (ext === 'wav') {
- var t = WMP.newMedia(file).GetItemInfo("Duration");
- var FileIndex = binarySearch(mediaFiles, t);
- if (FileIndex !== null) {
- var ToFile = mediaFiles[FileIndex];
- fso.CopyFile(ToFile.file, subFolder+'\\');
- mediaFiles.splice(FileIndex, 1);
- }
- }
- }
- }
复制代码
作者: 877 时间: 2023-10-31 20:17
回复 4# terse
感谢大佬,虽然看不懂,但是还是想问下,单独bat代码可以实现吗?
作者: terse 时间: 2023-10-31 21:17
回复 5# 877
保存为BAT文件 第一排这里的路径 自己修改一下 "D:\mp3" "E:\data"
作者: 877 时间: 2023-10-31 22:02
本帖最后由 877 于 2023-10-31 22:09 编辑
回复 6# terse
感谢大佬,测试成功了!万分感谢!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |