标题: [文件操作] 批量重命名后存在重复文件名,遇到重复文件名自动添加递增序号 [打印本页]
作者: 我是卖灯的 时间: 2018-11-5 01:37 标题: 批量重命名后存在重复文件名,遇到重复文件名自动添加递增序号
本帖最后由 我是卖灯的 于 2018-11-5 01:50 编辑
用excel处理重命名如下,另存为bat
ren E:\新建文件夹\1.jpg 别墅设计.jpg
ren E:\新建文件夹\2.jpg 别墅设计.jpg
ren E:\新建文件夹\3.jpg 三居室.jpg
ren E:\新建文件夹\4.jpg 三居室.jpg
ren E:\新建文件夹\5.jpg 三居室.jpg
希望得到
第一个文件 别墅设计.jpg
第二个文件 别墅设计01.jpg
第三个文件 三居室.jpg
第四个文件 三居室01.jpg
第五个文件 三居室02.jpg
依次类推,修改前文件名各不相同,修改后的文件名会有重复,遇到重复加序号
一共150000个文件
已经搜了一晚上了,实在找不到,软件也没有,批处理也不会
大神救救我,该怎么写批处理命令
作者: yhcfsr 时间: 2018-11-5 01:50
本帖最后由 yhcfsr 于 2018-11-5 01:52 编辑
看我签名加QQ,我需要了解EXCEL处理的文件细节
作者: Batcher 时间: 2018-11-5 09:06
建议跳过Excel直接用BAT处理,请详细描述一下根据什么规律重命名?
作者: 我是卖灯的 时间: 2018-11-5 16:44
回复 3# Batcher
2楼大神昨晚帮我解决好了。首先十分感谢大神的耐心和负责。
下面说一下解决方法,方便和我一样需求的小白直接带走。
1、通过excel处理好需要的文件名(路径/老文件名.jpg 新文件名)
注意:一定要依据第二列数据排序,让相同的重复数据排在一起。
2、全选处理好的两列数据粘贴到 新建文本文档.txt (注:同时复制两列,不做任何其他处理)
3、复制代码,另存为bat文件- @set @n=0/*&echo off
- dir /a-d/b *.txt|cscript -nologo -E:jscript "%~f0"
- pause&exit */
-
- var TXT = WSH.StdIn.ReadLine();
- var fso=new ActiveXObject('scripting.FileSystemObject');
- fo=fso.OpenTextFile(TXT,1);//读文件
- var ary='';
- var num=0;
- while(!fo.AtEndOfStream)
- {
- line=fo.ReadLine();
- fpath=line.replace(/(.*)\t.*/,'$1');
- newname=line.replace(/.*\t(.*)/,'$1');
-
- if (fso.FileExists(fpath))
- {
- var bfo = fso.GetFile(fpath);//获取文件对象
- } else {continue;}
-
- if(ary.lastIndexOf(newname)==-1) //如果不存在重复文件
- {
- ary='';//清空上组文件名
- num=0;
- ary+=newname;//加载新的文件名
- } else {
- num+=1;
- }
- bfo.Name=newname+'_'+num+'.jpg';//重命名
- }
复制代码
4、txt文件和bat文件放在要处理的目录下,双击BAT文件,就可以了。
5、测试过程很快,几秒钟,11000个文件全部改好了。
最后再次感谢一下大神的无私帮助。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |