前言
在进行数据处理时,常常设计多个图像或文本数据的批量处理,这些图像或文本可能来自于其他地方,有着特殊的命名规则,出于某种需求的考虑,我们可能需要对文件进行重命名(如给每个文件加上编号或者把日期信息写到文件名以便更好的对文件进行排序和处理),面对大量文件时,批量的方法就可以省不少时间
一、问题背景与目的
通过其他软件对数据进行批量处理后,我得到了如下一系列的文件,下图中的文件名包含两个信息:卫星ID(S2A/S2B)和影像获取日期(xx年xx月xx日),当前文件按S2A/S2B的顺序排列,为了对数据进行时间序列的处理,需要对影像文件按获取日期排列,其中一种方法就是将日期信息放到文件名开头部分。
二、操作步骤
1.提取所有文件名
首先创建一个txt文件,命名随意,如extractname.txt
在extractname.txt 中输入如下语句
DIR *.* /B> namelist.txt
并将extractname.txt的后缀改为bat
双击运行extractname.bat文件,执行代码之后,就将该文件夹下的所有文件名写入了namelist.txt文件中,可以打开namelist.txt查看。
注意:这里不仅读入了所有tif的文件名,同时将新生成的bat和txt文件名也读入了。
2.复制所有文件名到excel中进行修改
我们将要修改的文件名复制到excel中A列
并在B列中输入
=MID(A1,19,8)&MID(A1,8,3)&".tif"
B列中即会出现我们需要的修改后的文件名
3.通过bat批量对文件进行批量重命名
bat中语句
REN name1 name2
可将文件名从 name1 改为 name2,为此,我们将 REN name1 name2 也在excel中批量写好直接复制
在 excelC 列中输入
="REN "&A1&" "&B1
即可得到所有的语句
在文件夹中新建 correct.txt 并将excel C列中的语句全部复制写入
并将correct.txt 后缀改为bat,双击运行即可将所有文件名改名
修改后文件的命名方式即为“XXXX(年)XX(月)XX(日)” + “S2A/B”
注意要点
各语句中的空格要注意,漏掉可能会运行报错
有其他问题欢迎交流!~
参考来源:https://zhuanlan.zhihu.com/p/139651864