整理文件资料时,我们经常需要把某个文件夹下的所有文件名汇总到 Excel 或其他文档中。手工逐个复制,少则几十个,多则上千个文件,效率极低且容易遗漏。无论是做资产登记、批量归档,还是给资料做索引,怎么提取文件夹中所有文件名称 都是一个非常高频的需求。

本文结合我实际处理过的批量文件整理场景,分享三种可落地的方案:一款图形化工具、一组 bat 命令、一段 VBA 宏代码。

百家号头图

方案一:使用汇帮文件名提取器

汇帮文件名提取器是一款 Windows 平台下的 GUI 工具,定位就是解决“提取文件名”这一单一场景。它不需要任何代码基础,整个过程鼠标点击即可完成。

1. 核心功能优势

  • 批量处理:支持将文件夹中的全部文件一次性导入,文件数量和类型不受限制
  • 多种导出格式:支持导出为 Excel (.xlsx)、TXT、Word (.docx) 三种格式
  • 可自定义字段:可以选择是否包含完整路径、文件创建时间、修改时间等附加信息
  • 纯本地运行:文件不上传,适合包含敏感信息的目录

2. 详细操作流程

步骤1:启动软件并选择提取模式

打开“汇帮文件名提取器”软件,在主界面中选择 “文件名提取” 选项并点击进入。

选择文件名提取模式

步骤2:导入目标文件夹中所有文件

点击左上角的 “添加文件” 按钮,将目标文件夹中的全部文件导入。这里特别说明一下:该步骤支持图片、视频、文档、压缩包等各种格式,没有数量上限。

点击添加文件按钮

步骤3:设置导出名称与格式

在右侧输入导出文件的名称,并选择导出格式。我这边选的是 Excel 文件,如果你后续只需要查看或做简单筛选,也可以选择 TXT 或 Word。

设置导出名称和格式

步骤4:配置需要包含的字段

软件默认会在导出结果中包含完整路径、创建时间、修改时间等字段。如果你只需要文件名本身,把多余的选项勾选去掉即可,这一步直接决定最终表格的列结构。

配置提取选项

步骤5:执行提取并检查结果

点击 “开始提取” 按钮,软件会调用本机资源开始处理提取操作。当界面提示 “操作完成” 时,前往输出目录即可看到生成的 Excel 文件。

点击开始提取打开生成的 Excel 文件,可以看到所有文件名已被统一提取到工作表中,列结构清晰,无需二次清洗。

打开提取结果文件

方案二:bat 命令提取

在 Windows 环境中,使用 bat 批处理文件是提取文件名最高效的零依赖方案。它不需要安装任何额外软件,思路就是用 dir 命令把文件名列表重定向输出到文本文件。

1. 适用场景

  • 临时需要快速获取文件名列表
  • 电脑不能安装第三方软件的环境
  • 对导出格式没有额外要求,纯文本即可

2. 操作步骤

步骤1:在目标文件夹内新建一个 TXT 文本文件。

在文件夹中新建文本文件步骤2:在文本文件中写入以下命令:

DIR . /B > LIST.TXT

这里解释一下参数含义:dir 是 Windows 自带的文件列表命令;. 表示当前目录;/B 表示只输出文件名(不带大小、日期等额外信息);> 是重定向符,将结果写入 LIST.TXT 文件。

编辑bat命令代码步骤3:将文件后缀名由 .txt 改为 .bat。系统弹出重命名提醒时,点击“是”确认。

修改文件后缀为bat步骤4:双击运行该 .bat 文件,稍等几秒,目录下就会自动生成 LIST.TXT 文件。

步骤5:打开 LIST.TXT,里面就是该文件夹下的所有文件名,每行一个。

打开生成的TXT文件

3. 限制与注意点

  • 该方法只提取当前目录下的文件,不会递归子文件夹。如需包含子目录,需要换用 dir /B /S > LIST.TXT
  • 生成的文件名包含扩展名(如 .pdf),且不含文件路径
  • 输出的 LIST.TXT 本身也会出现在列表中,属正常现象

方案三:VBA 宏提取

如果你希望把文件名直接提取到 Excel 单元格中,且后续数据操作也需要在 Excel 内完成,那么 VBA 宏是一个值得掌握的方案。VBA(Visual Basic for Applications)是 Office 内置的宏语言,无需额外安装运行时。

1. 实现逻辑

通过 VBA 调用文件系统对象(FileSystemObject),遍历文件夹,将文件名循环写入工作表。这样做的好处是提取结果与数据整理无缝衔接,适合需要经常做文件台账的同学。

2. 操作步骤

步骤1:新建 Excel 工作簿,另存为 .xlsm 格式(启用宏的工作簿)。

步骤2:点击工具栏的 “开发工具” → “Visual Basic” 打开 VBA 编辑器,双击左侧的 Sheet1,在代码区粘贴以下代码:

Sub ExtractFileNames()
    Dim folderPath As String
    Dim fileName As String
    Dim rowNum As Integer
    
    folderPath = "C:\你的文件夹路径\" ' 修改为实际路径,注意结尾反斜杠
    rowNum = 1
    
    fileName = Dir(folderPath & "*.*")
    Do While fileName <> ""
        Cells(rowNum, 1).Value = fileName
        rowNum = rowNum + 1
        fileName = Dir
    Loop
    
    MsgBox "文件名提取完成,共 " & rowNum - 1 & " 个文件"
End Sub

步骤3:返回 Excel 界面,点击 “开发工具” → “宏”,选中刚才创建的宏并运行。

步骤4:运行完成后,Sheet1 的 A 列即为所有文件名。若未找到“开发工具”选项卡,可在 Excel 选项的“自定义功能区”中手动开启。

VBA编辑器与宏代码

3. 限制与报错排查

  • 如果提示 找不到文件,检查文件夹路径末尾是否遗漏了反斜杠 \
  • 宏代码只提取当前文件夹第一层文件,不包含子文件夹
  • 首次运行提示“宏被禁用”时,需在工作簿所在位置选择“启用内容”

方案总结与选型建议

维度

汇帮文件名提取器

bat 命令

VBA 宏

技术门槛

无,纯图形界面

低,需知道 dir 命令

中,需会粘贴代码

操作耗时

约 30 秒

约 1 分钟

约 5 分钟(含配路径)

导出格式

Excel / TXT / Word

TXT

Excel 单元格

是否包含子文件夹

支持,可配置

需改参数

需改代码

适用人群

办公用户、非技术人员

开发、运维

Excel 重度用户

“怎么提取文件夹中所有文件名称”这个问题,本质上没有唯一标准答案,核心看你的环境约束:

  • 追求低门槛 + 可配置导出格式,选汇帮文件名提取器,尤其适合一次处理上千个文件、且需要把文件名整理进 Excel 的场景
  • 只需要纯文本快速拿到文件名,选 bat 命令,十秒搞定
  • 希望提取后直接在 Excel 里分类标记,选 VBA 宏,把提取和处理合并到一个工作流中

三种方法我都实测过,日常场景下完全够用。如果你在操作中遇到提取结果为空、路径错误或格式异常的问题,欢迎在评论区把具体现象发出来,我看到后会逐一回复排查思路。