分享

你会批量修改指定路径下的文件名吗?

 刘卓学EXCEL 2021-04-02
你好,我是刘卓。欢迎来到我的公号,excel函数解析。今天要和你分享的函数是files。它也是一个宏表函数,可以提取指定路径下的所有文件名。后续结合DOS命令可以批量修改文件名;还可以配合hyperlink函数制作可跳转的文件目录。
-01-

函数说明


files返回指定路径下的所有文件名的水平数组。语法如下,只有1个参数:

FILES(directory_text)

directory_text指定一个返回文件名的路径。如果省略,默认返回当前工作簿所在路径下的所有文件名。而且它像hyperlink一样支持相对路径。

-02-

示例解释

它的表示方法为=files(路径\文件名.后缀)。

比如:=files("E:\图片\*.*")。
E:\图片\是指文件所在的路径,要注意的是路径后面要有斜杠\。
*.*是指所有类型的文件。第1个*是文件名,第2个*是文件的类型,也就是后缀。文件名和后缀可以使用通配符*和?。

-03-
具体应用

1.批量修改文件名

在e盘下有个名称为图片的文件夹,里边存放了一些图片。现在要批量的给这些图片改名。改名的方式也简单,就是在原来的名称前面添加"素材—"这3个字符。比如[白蛇缘起]改名为[素材白蛇缘起]

其实这个问题要分2步,第1步提取出这个文件夹下的所有文件名,第2步用dos命令批量改名。

下面先来看第1步→提取所有文件名
定义一个名称wjm,在引用位置输入公式=FILES("E:\图片\*.*")&T(NOW())这个名称返回的结果就是指定路径下的所有文件名,是一个水平数组。

提取文件名的公式为=IFERROR(INDEX(wjm,ROW(A1)),"")。用index从所有文件名的数组中依次提取第1个文件名,第2个文件名。。。一直提取完。
当所有的文件名被提取完后,公式向下拖动会产生错误值。所以用iferror来处理下错误。

再来看第2步→用DOS命令批量改名

在B5单元格输入公式=IF(A5="","","ren"&" "&A5&" "&"素材—"&A5)。if的作用是用来判断,如果A列的单元格是空,那么让B列的单元格也显示为空,否则就显示为DOS命令。

"ren"&" "&A5&" "&"素材—"&A5这部分如果写成中文的话就是"ren"&"空格"&旧文件名&"空格"&新文件名

"ren"就是"rename"的简写,重命名的意思。上面的命令就是将旧文件名改为新文件名。

复制B5:B11,在图片的文件夹下新建一个txt文档。打开,将B5:B11粘贴到txt中,保存,关闭。然后将txt的后缀改为bat,弹出对话框,点是,文档变为一个齿状的文件。双击这个齿状的文件,奇迹发生了。所有文件的名称都改变了。

最后将excel保存为启用宏的工作簿,后缀为.xlsm。

接:

https://pan.baidu.com/s/1bOLrOgAsLu_sdmAdpSwNUQ

提取码:sz9z

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多