技术背景与需求分析

在日常开发和办公场景中,提取文件名和对应内存大小是一项出现频率极高的需求。无论是项目交付时的文件清单整理、服务器目录的容量审计,还是个人 NAS 存储空间的清理排查,都需要将文件系统中的元数据(文件名、扩展名、大小、修改时间)批量导出为结构化表格。

本文记录一次完整的文件清单提取过程,从图形化工具到命令行脚本逐层展开,读者可根据自身技术背景选择合适路径。

百家号头图

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

汇帮文件名提取器属于本地运行的 Windows 桌面程序,不依赖在线服务,文件数据无需上传,从隐私角度也更适合处理合同、财务等敏感资料。

1. 方案特点

  • 批量导入:支持一次性添加多个文件,或直接导入整个文件夹目录,递归获取内部文件。
  • 多格式导出:可输出为 Excel、TXT、Word 三种格式,Excel 便于后续筛选排序。
  • 字段可配置:除文件名和大小外,还可同时提取扩展名、文件路径、修改日期等属性,按需勾选。

2. 详细操作流程

步骤1:下载安装并进入功能模块

安装并打开软件后,主界面会展示多项功能入口,选择“文件名提取”模块进入操作页。

汇帮文件名提取器主界面

步骤2:添加文件或整个文件夹

点击“添加文件”可将单个文件逐个加入列表;若需要提取整个目录的文件信息,则点击“添加目录”一次性导入。软件支持同时添加多个文件夹并自动合并到同一任务中。

添加文件或文件夹

步骤3:自定义导出名称

文件列表导入完成后,在右侧区域输入导出文件的名称。此处按实际项目命名即可,例如“XX项目文件清单”,方便后续归档检索。

自定义导出名称

步骤4:选择导出格式

软件支持 Excel、TXT、Word 三种输出格式。本次选择 Excel,便于后续用数据透视表或筛选功能统计数据。

选择导出格式

步骤5:勾选“包含文件大小”并执行提取

在下方的字段选项中勾选“包含文件大小”,此时输出的表格会在文件名后附带对应的字节数。如需其他属性(如修改日期、扩展名),可在此处一并勾选。确认无误后点击“开始提取”。

勾选包含文件大小并提取

步骤6:查看输出结果

提取完成后,软件会弹出输出目录。打开生成的 Excel 文件,第一列为文件名,第二列即为对应的内存大小(以字节为单位显示),可直接复制或保存。

输出目录Excel清单内容限制说明:免费版在大规模文件(超过 1 万个)导入时可能出现响应变慢的情况,且导出的 Excel 固定为字节单位,如需显示为 MB 需在 Excel 中自行新增公式列转换。

方案二:PowerShell 命令行提取

如果目标环境已具备 Windows PowerShell,且提取逻辑需要重复执行或集成到自动化脚本中,使用命令行是更轻量、更可控的路径。

1. 适用场景

  • 需要定时执行(如每天凌晨生成目录快照);
  • 需要将提取逻辑写入 CI/CD 流水线或 bat 脚本;
  • 服务器环境无图形界面,仅能通过远程终端操作。

2. 操作步骤

在目标文件夹内,按住 Shift 键并右键空白处,选择“在此处打开 PowerShell 窗口”。

在此处打开PowerShell窗口然后在 PowerShell 中执行以下命令:

Get-ChildItem -File | Select-Object Name, Length, LastWriteTime | Export-Csv -Path "文件清单.csv" -NoTypeInformation -Encoding UTF8

执行PowerShell命令命令说明:

  • Get-ChildItem -File:仅获取当前目录下的文件(不含子文件夹);
  • Select-Object Name, Length, LastWriteTime:选取文件名、大小(字节)、最后修改时间三个字段;
  • Export-Csv -NoTypeInformation -Encoding UTF8:导出为 CSV 格式,使用 UTF-8 编码避免中文乱码。

风险提示:若需要递归导出子目录中的文件,需补充 -Recurse 参数;此外,Excel 直接打开 UTF-8 编码的 CSV 可能出现中文乱码,可用记事本打开后另存为 带有 BOM 的 UTF-8 再导入 Excel。

方案三:Python 脚本提取(自动化兜底)

当需要更复杂的过滤逻辑(如只提取大于 100MB 的日志文件,或按扩展名分组统计)时,Python 的标准库即可完成任务,无需安装第三方依赖。

import os
import csv

target_path = r"C:\path\to\your\folder"  # 修改为目标目录
output_file = "file_list.csv"

with open(output_file, "w", newline="", encoding="utf-8-sig") as f:
    writer = csv.writer(f)
    writer.writerow(["文件名", "大小(字节)", "完整路径"])
    for root, dirs, files in os.walk(target_path):
        for name in files:
            full_path = os.path.join(root, name)
            size = os.path.getsize(full_path)
            writer.writerow([name, size, full_path])

print("完成,已生成", output_file)

encoding="utf-8-sig" 是为了输出带 BOM 的 UTF-8 文件,这样 Excel 打开时能正确识别中文列名。os.walk 默认递归遍历所有子目录,如果需要仅扫描顶层文件,替换为 os.listdir 即可。

方案总结与选型建议

| 对比维度 | 汇帮文件名提取器 | PowerShell | Python 脚本 | |---------|-----------------|-----------|------------| | 学习成本 | 低,图形化点击操作 | 中,需要记忆 cmdlet 语法 | 较高,需要基础编程能力 | | 批量目录支持 | 支持多文件夹,递归导入 | 需加 -Recurse 参数 | 需使用 os.walk | | 导出格式 | Excel / TXT / Word | CSV | CSV(可通过库扩展为 xlsx) | | 自动化集成 | 不支持直接脚本化 | 支持,可写入 bat | 支持,可对接调度平台 | | 适用人群 | 非技术背景,一次性任务 | 运维人员,轻量定期任务 | 开发人员,复杂筛选逻辑 |

选型建议:如果任务是一次性的,且需要把清单交给非技术同事审阅,优先使用汇帮文件名提取器,导出 Excel 后开箱即用;如果需要在服务器上批量处理无法打开图形界面,或者需要每天定时生成目录快照,PowerShell 是更可靠的替代路径;Python 方案的价值在于灵活控制文件过滤规则和输出样式,适合熟悉代码的开发者或后续需要做二次分析的场景。

如果你有更好的方案或在实际提取过程中遇到编码问题,欢迎在评论区提出,一起交流。