批量重命名,批量统计文件名

今天处理一批图片,分散在五十几个文件夹下,每个文件夹下的数量和名字均不相同,现在要统一按规律重命名并统计归档。

要求:1,命名规则:所在文件夹名_文件名.png

2,统计出每个子文件夹下数量

3,把每个子文件夹下的文件归档记录

如下图展示,几十个文件夹,每个文件夹下数量、名字都不规则。

批量重命名,批量统计文件名

步骤1,获取所有文件名称

①在主目录下,按住shift然后点击鼠标右键,选择“在此处打开命令窗口”

②输入dir   /s   /b   >>   list.xlsx

说明:/s是表示输出包括子文件夹的内容;/b表示只输出文件名;>>是表示如果当前目录有该文件名则在后面追加内容,没有就新建。cmd命令中1个空格符合和多个空格符是一样的,不影响。

③返回主目录,找到刚才新生成的Excel文件,打开做数据处理。

步骤2,重命名准备

①复制一个list.xlsx做备份,等会还要用到

②在主目录下打开刚才生成Excel表格,选中第一列,选择“数据”--“分裂”--“分隔符号”--“其他”--输入反斜杠\

批量重命名,批量统计文件名

分裂后的数据如上图,G列是文件夹名称,H列是文件名称。

③在J1输入=G1&"_"&H1,把字符串连接起来。然后下拉,就获取到了需要的新名称

批量重命名,批量统计文件名

④填充完J列,打开刚才复制的备份list.xlsx表格,并把J列全部复制到备份表格的B列,然后再在A列左边插入一列,并输入rename

批量重命名,批量统计文件名

⑤全选并复制这个表格,在主目录下新建一个txt文本文档,粘贴保存。然后重命名后缀从.txt改为.bat。

⑥双击bat执行。(注意:建议在备份文件中测试,以免丢失原始文件)

到这里重命名就完成了。接下来就是统计,不需要这一步的就不用看了。

步骤3,获取新的文件名

①同前面的操作,在主目录下按住shift的时候点鼠标右键,选择选择“在此处打开命令窗口”

②输入dir    /s    /b    >>   newlist.xlsx

③复制一个备份,打开newlist表格文件,然后通前面的操作,对数据进行分裂

④删除路径列表,只留下文件夹、文件名两列(删除后文件夹自动变为A列,文件名为B列)

⑤新建sheet2,复制A列到sheet2,选中A列后执行“数据”--“删除重复数据”,这样就得到了每一个文件夹名称

批量重命名,批量统计文件名

⑥把刚才得到的文件夹名称复制sheet1的C列,到这一步就完成的差不多了,接下来就是几个函数应用

步骤4,数据处理

经过上面的处理,得到下图的数据,总共389个文件,对应所在的文件夹应该也是389,但是文件夹数量确是54个,因为1个文件夹下有N个文件。

批量重命名,批量统计文件名

①统计每个文件夹下对应的文件数量

在D1输入=COUNTIF(A:A,C1),然后按ctrl+shift+enter,使内容有个花括号。然后下拉填充

②统计每个文件夹下的文件名

在E1输入=TEXTJOIN(";",TRUE,IF(C1=$A$1:$A$389,$B$1:$B$389,"")),然后按ctrl+shift+enter,使内容有个花括号。然后下拉填充。这样一个文件夹下的所有文件都在一个文本框内。【说明:此处用到的textjoin函数只在微软office365版本和金山WPS中才有,普通的office没有该函数】

③选中D、E列复制,在F1处右键“仅粘贴为数值,然后就可以把D、E列删除

批量重命名,批量统计文件名

心得:只提供思路,因为每次遇到数据形式、需要处理的方式不同,根据情况灵活作出变动。比如重命名有时需要按123顺序命名,有时子文件夹有多中类型文件只需要处理其中的一种等等,这个就需要穿插其他如通配符“*”等。