?点击关注Excel表哥公众号
上一篇推文我们介绍了如何批量获取同一文件夹下所有的文件名。
▲点此图片回顾
很多读者获取到这些文件名之后的一种工作情形就是需要批量或者有针对性地修改这些文件的名称。
那么但凡是这类需要批量操作的重复工作,Excel擅长。
还是以上篇推文中PIC文件夹中的几十张图片为例,我们一起来操作:
01修改文件名称在示例文件中E列填入需要修改的文件名,为了省去大家填写时还需填写文件类型扩展名的麻烦,我把这步骤也用公式统一实现。上图中F3单元格的公式为:="REN"&CHAR(32)&""""&B3&""""&CHAR(32)&""""&E3&MID(B3,FIND(".",B3),99)&""""
当然,感觉公式太长也可以简写为:
="REN "&B3&" "&E3
不过这样就需要注意E列中的Rename名称要和B列中的扩展名一致。
将F列中公式生成的字符串Copy至一个该路径下新建的一个txt文档,保存后将txt后缀修改为.bat。例如下图示例:
02见证神奇的时刻双击这个bat文件,不要眨眼,注意看接下来发生了什么:只需要双击rename.bat这个文件,该文件夹路径下列表中所有的文件名就瞬间自动完成修改了。
我大致数了下3s时间足够了。
03实现原理介绍我们还是需要简单了解下实现的原理。别看上面的一行公式挺长,其实规则很简单,从Excel文件Copy至.bat文件中的命令实际上是Windows操作系统中的批处理脚本,英文名称叫Batch,扩展名.bat就是取了前3个字母。REN就是Rename的缩写。它的语法规则及含义如下:
▼左右滑动查看完整代码
ren_[Drive:][path]_"Oldfilename"_"Newfilename"
[Drive:][path]是文件所在的路径,如缺省了就默认作用于它所在的当前文件夹。只是呢需要注意这里面有一些空格(红色标注显示),在实际运用时候经常有的读者忘记打空格,因此我才在公式中强制增加了空格,用F9试着预算一下就清楚了。CHAR(32) -> " "另外,这段公式还有一个设置目的是实现自动在新旧文件名前后增加双引号,因为正如上面的批处理语法说明,文件名需要用双引号括起来,否则一旦文件名中出现空格就无法识别分隔了。我也查询了一些类似的公众号文章介绍,大多数都漏掉了这一步操作,大家需要格外注意。另外一个技巧分享:在Excel中我们知道要在公式中连接文本,一般的作法就是将文本用英文的""括起来再和公式通过&符号连接即可。但是如果文本中本身就是要有""的话则需要通过下面的方式进行设置:
"""" -> 四个"会通过公式转化为一个"。
那么细心的朋友可能还会产生这样的疑问,既然Windows自带的批处理命名这么强大,是不是也有同样的办法实现批量获取某个路径下所有的文件名称列表清单呢?
是的,用BAT批处理命名也能实现,步骤如下:
在需要提取的文件夹下新建一个txt文档,名称随意,例如DIR.txt。
在txt文件中输入如下命令:
DIR_
*.*_/B>_
list.txt
▲注意空格不可缺少
修改文件后缀并双击DIR.bat
自动生成包含文件名列表的list.txt文件
[01] 如何批量获取同一文件夹下所有的文件名注:本公众号所载原创文章均为作者辛苦创作,转载请联系作者并标明出处。扫码关注我们微信公众号:Excel表哥用Excel加速我们的工作和生活
处处留心皆学问,建议大家可以将这篇推文收藏,以备不时之需。
你点的每个“在看”我都认真当成了喜欢▼