批量提取文件夹下文件名

2023年10月26日 · 532 字 · 2 分钟 · Windows

单纯是用到了这个记录一下。

步骤

  1. 新建一个文件,将如下内容复制粘贴进去,然后修改文件后缀为bat
DIR *.*  /B >LIST.TXT

这个脚本的原理是将当前文件夹下的文件列出并打印到LIST.TXT

  • dir是查找,后面跟的是查找的参数
  • /s查找当前目录以及所有子目录下的文件(包含子文件夹)
  • /b舍弃标题与摘要内容(带上就对了)
  • /a [[:] Attributes]只显示指定属性的目录名和文件名
  • /a-d 只显示文件,而非目录(省略了冒号,打全了是/a:-d
  1. 双击运行该bat文件,结果会保存在LIST.TXT

批量替换

因为我做这一步的目的是为了把文件全部上传到图床,然后引用,所以需要对文件插入的链接进行修改。

例如:

mmexport1654417385133.jpg
替换为
![](https://cdn.jsdelivr.net/gh/lizilong1993/image@main/picture/summer/mmexport1654417385133.jpg)
  1. 使用VS Code或其它具备批量替换能力的IDE打开LIST.TXT
  2. 使用编辑器的替换功能,注意选中正则表达式,如下图所示

image-20230418150933573

image-20230418151038122

  1. 在搜索框输入你的匹配表达式,我的这里是(mmexport[0-9]*.jpg),其它匹配式见在线正则表达式测试 (oschina.net)
  2. 在替换内容部分输入你的替换内容,用$1表示你上面搜索框的第一个括号内的内容,此处就是mmexport[0-9]*.jpg,也就是匹配到的文件名。如果有多个括号,则依次为$2$3等等。
  3. 全部替换,大功告成🎉

参考资料