[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. 0<1/*,:
  2. @echo off
  3. REM 功能:将目录下的文件按指定数量组合并拷贝到目标目录
  4. REM 设置文件搜索目录路径
  5. set srcdir="e:\test\new folder"
  6. REM 设置输出文件所在目录路径
  7. set dstdir="e:\test\new folder\new"
  8. REM 设置文件组合的数量
  9. set count=7
  10. cscript -nologo -e:jscript %0 /srcdir:%srcdir% /dstdir:%dstdir% /count:%count%
  11. pause
  12. exit /b
  13. */
  14. ;
  15. var fso = new ActiveXObject('Scripting.FileSystemObject');
  16. var srcdir = WScript.Arguments.Named('srcdir');
  17. var dstdir = WScript.Arguments.Named('dstdir');
  18. var count = parseInt(WScript.Arguments.Named('count'));
  19. if (isNaN(count)) {
  20.   showError('count 不是数字');
  21.   WScript.Quit(1);
  22. }
  23. try {
  24.   var folder = fso.getFolder(srcdir);
  25. } catch (e) {
  26.   showError(srcdir + ' 不存在');
  27.   WScript.Quit(2);
  28. }
  29. if (!fso.FolderExists(dstdir)) {
  30.   try {
  31.     fso.CreateFolder(dstdir);
  32.   } catch (e) {
  33.     showError('无法创建目录:' + dstdir);
  34.     WScript.Quit(3);
  35.   }
  36. }
  37. for (var arrFiles = [], colFiles = new Enumerator(folder.Files); !colFiles.atEnd(); colFiles.moveNext()) {
  38.   arrFiles.push(colFiles.item());
  39. }
  40. for (var arrComb = combination(arrFiles, count), i = 0, l = arrComb.length; i < l; i++) {
  41.   try {
  42.     var currdir = fso.BuildPath(dstdir, String(i + 1));
  43.     if (!fso.FolderExists(currdir)) {
  44.       fso.CreateFolder(currdir);
  45.     }
  46.     var arrCombMember = arrComb[i];
  47.     for (var j = arrCombMember.length - 1; j >= 0; j--) {
  48.       arrCombMember[j].Copy(currdir + '\\', true);
  49.       WScript.Echo(arrCombMember[j].Path + ' >> ' + currdir);
  50.     }
  51.   } catch (e) {
  52.     WScript.Echo('Error:' + currdir);
  53.   }
  54. }
  55. function combination(arr, n) {
  56.   var arrA = [];
  57.   if (0 === n) return [
  58.     []
  59.   ];
  60.   if (n >= arr.length) {
  61.     arrA.push(arr);
  62.     return arrA;
  63.   }
  64.   for (var i = 0, k = arr.length - n + 1; i < k; i++) {
  65.     for (var j = 0, t = combination(arr.slice(i + 1), n - 1), l = t.length; j < l; j++) {
  66.       t[j].unshift(arr[i]);
  67.       arrA.push(t[j]);
  68.     }
  69.   }
  70.   return arrA;
  71. }
  72. function showError(err, source) {
  73.   WScript.Echo('[object Error]' === Object.prototype.toString.call(err) ? [
  74.       err.name,
  75.       'source: ' + (undefined === source ? '' : source),
  76.       'number: ' + (err.number >>> 0).toString(16),
  77.       'equipment: ' + (err.number >> 16 & 0x1FFF),
  78.       'code: ' + (err.number & 0xFFFF),
  79.       'Information: ' + err.message
  80.     ].join('\n') :
  81.     err);
  82. }
复制代码
微信:flashercs
QQ:49908356

TOP

返回列表