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

TOP

  1. @set @x=0 /* & @echo off
  2. cd /d "d:\mp3\"
  3. dir /b /a-d *.mp3|cscript -nologo -e:jscript %0 "e:\a\"
  4. pause & exit */
  5. var WMP = new ActiveXObject("WMPlayer.OCX");
  6. var i = 0; mediafiles = [];
  7. var Arg = WSH.Arguments;
  8. while (!WSH.StdIn.AtEndOfStream) {
  9.      var file =  WSH.StdIn.ReadLine();
  10.      mediafiles[i++] = ({file: file, duration: Math.floor(WMP.newMedia(file).GetItemInfo("Duration"))});
  11. }
  12. mediafiles.sort(function(a, b) { return a.duration - b.duration; });
  13. function binarySearch(mediafiles, t) {
  14.      var left = 0, right = mediafiles.length - 1;
  15.      while (left < right) {
  16.           var mid = Math.floor((left + right) >> 1);
  17.           if (mediafiles[mid].duration > t) {
  18.                right = mid;
  19.           } else {
  20.                left = mid + 1;
  21.           }
  22.      }
  23.      return (left < mediafiles.length) ? left : null;
  24. }
  25. var fso = new ActiveXObject("Scripting.FileSystemObject");
  26. var ss = 150;
  27. var folder = fso.GetFolder(Arg.Item(0));
  28. var subfolders = new Enumerator(folder.Subfolders);
  29. for (; !subfolders.atEnd(); subfolders.moveNext()) {
  30.      var subfolder = subfolders.item();
  31.      var files = new Enumerator(subfolder.files);
  32.      for (; !files.atEnd(); files.moveNext()) {
  33.           var file = files.item();
  34.           var ext = file.Name.slice(file.Name.lastIndexOf(".")+1).toLowerCase();
  35.           if (ext === 'wav') {
  36.                var duration = Math.floor(WMP.newMedia(file.Path).GetItemInfo("Duration"));
  37.                var Index = binarySearch(mediafiles, duration + ss);
  38.                if (Index !== null) {
  39.                     fso.CopyFile(mediafiles[Index].file, subfolder + '\\');
  40.                     WSH.Echo(mediafiles[Index].file, ' ==> ' ,subfolder);
  41.                     mediafiles.splice(Index, 1);
  42.                }
  43.           }
  44.      }
  45. }
复制代码
回复 3# 877

TOP

返回列表