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

[文件操作] BAT批处理复制或移动文件夹中的文件时,如何重新命名?

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

回复 3# apang


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

TOP

  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. }
复制代码

TOP

麻烦大家给予帮助,谢谢。

TOP

返回列表