Board logo

标题: [文件操作] BAT批处理复制或移动文件夹中的文件时,如何重新命名? [打印本页]

作者: wonderful    时间: 2014-2-20 21:25     标题: BAT批处理复制或移动文件夹中的文件时,如何重新命名?

复制或移动多个文件夹中的文件时,若源文件与目标文件夹中的文件有重名的情况,请问,如何将源文件中的文件重新命名?(命名规则可以:文件名_1.文件类型,若还有重复,则文件名_2.文件类型……),谢谢,大家指点。
作者: wonderful    时间: 2014-2-21 16:58

麻烦大家给予帮助,谢谢。
作者: apang    时间: 2014-2-22 09:50

  1. @set @n=0;/*
  2. @set "源=D:\abc\ D:\def\ d:\xyz\" & set "目标=E:\123\"
  3. @dir /a-d/b/s "%源:\ =\" "%" | cscript -nologo -e:jscript "%~0" "%目标%"
  4. @pause & exit/b & Rem */
  5. dst = WScript.Arguments(0);
  6. fso = new ActiveXObject("Scripting.FileSystemObject");
  7. while (!WSH.StdIn.AtEndOfStream) {
  8.     file = WSH.StdIn.ReadLine();
  9.     f = fn = fso.GetFile(file).Name;
  10.     len = f.lastIndexOf(".");
  11.     if (len == "-1") {len = f.length};
  12.     n = 0;
  13.     while (fso.FileExists(dst + fn)) {
  14.         n += 1;
  15.         fn = f.substr(0,len) + "_" + n + f.substr(len);
  16.     };
  17.     fso.GetFile(file).Copy(dst + fn);
  18. }
复制代码

作者: wonderful    时间: 2014-2-23 09:27

回复 3# apang


   太感谢了,虽然看上去很复杂(自己水平差,很多地方看不懂,呵呵),不过会好好研究一番的,多些了。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2