可在Windows 10中通过CMD(DIR /B > filelist.txt)、PowerShell(Get-ChildItem -File | Select-Object -ExpandProperty Name > names_only.txt)、资源管理器“复制为路径”+记事本替换、批处理文件或Excel分列五种原生方法快速提取文件名列表。

如果您需要在 Windows 10 系统中快速获取指定文件夹内所有文件的名称列表,而无需手动逐个抄录或安装第三方软件,则可通过系统原生命令行与脚本功能实现高效提取。以下是多种可立即执行的方案:
一、使用 CMD 命令行导出为 TXT 清单
该方法调用 Windows 内置的 DIR 命令,在目标文件夹所在位置直接生成纯文本文件名列表,不依赖额外环境,执行迅速且结果简洁。
1、按住 Shift 键 + 右键 点击目标文件夹空白处,选择「在此处打开命令窗口」。
2、在弹出的命令提示符中输入以下命令并回车:DIR /B > filelist.txt。
3、等待光标返回后刷新文件夹,即可看到新生成的 filelist.txt 文件,其中每行一个文件名(含扩展名),不含路径与文件夹名。
4、如需排除子文件夹内容,确保未添加 /S 参数;若仅需文件名不含扩展名,改用命令:DIR /B | for /f "delims=." %i in ('more') do @echo %i,再重定向输出。
二、使用 PowerShell 一行脚本提取并导出
PowerShell 支持对象化处理,可精准筛选文件项并导出结构化结果,适用于需后续筛选、排序或导入 Excel 的场景。
1、在目标文件夹空白处按 Shift + 右键,选择「在此处打开 PowerShell 窗口」。
2、粘贴并执行以下命令:Get-ChildItem -File | Select-Object -ExpandProperty Name > names_only.txt。
3、执行完成后,当前目录将生成 names_only.txt,内容为纯文件名(不含路径、不含文件夹、不含扩展名)。
4、如需同时导出扩展名与修改时间,使用:Get-ChildItem -File | Select-Object Name, Extension, LastWriteTime | Export-Csv -Path "detail.csv" -NoTypeInformation -Encoding UTF8。
三、通过资源管理器“复制为路径”+文本替换提取
该方式完全规避命令行操作,利用图形界面隐藏功能“复制为路径”,再借助记事本批量替换剥离路径前缀,适合对命令不熟悉的用户。
1、打开目标文件夹,按 Ctrl + A 全选所有文件(注意:不要勾选子文件夹,否则仅列出其名称)。
2、按住 Shift 键后右键任意选中文件,在弹出菜单中点击「复制为路径」。
3、新建记事本,按 Ctrl + V 粘贴,内容形如:"D:\Work\report.docx"。
4、按 Ctrl + H 打开替换窗口,查找内容输入完整路径前缀(例如 "D:\Work\),替换为留空,点击「全部替换」。
5、再次替换,查找 "(英文双引号),替换为空,点击「全部替换」,最终保留干净文件名。
四、使用批处理文件(.bat)一键生成清单
批处理文件可重复使用,适配单层或递归提取需求,运行后自动生成结果文件,无需每次输入命令。
1、在目标文件夹中右键 → 「新建」→ 「文本文档」,重命名为 listfiles.bat(确保扩展名由 .txt 改为 .bat)。
2、右键编辑该文件,在首行输入:@echo off,第二行输入:dir /b > output.txt。
3、按 Ctrl + S 保存,关闭记事本。
4、双击运行 listfiles.bat,几秒后生成 output.txt,内容即为当前文件夹全部文件名。
5、如需递归提取所有子文件夹中的文件名(仅文件名,不含路径),另建 recursive_names.bat,内容为:@echo off && for /r %i in (*) do @echo %~nxi >> recursive_names.txt。
五、使用 Excel 快速分列提取文件名
当已通过其他方式获得带路径的完整列表(如“复制为路径”结果)时,可直接粘贴至 Excel,利用分列功能剥离路径,保留末级文件名。
1、将带引号的完整路径列表(如 "C:\Data\photo.jpg")全选复制,粘贴至 Excel 第一列。
2、选中该列 →「数据」选项卡 →「分列」→ 选择「分隔符号」→ 勾选「其他」并填入 \ → 完成。
3、此时路径被拆分为多列,最右一列为含引号的文件名;再对该列执行「查找替换」,将 " 替换为空。
4、如需去除扩展名,新增一列使用公式:=LEFT(A1,FIND(".",A1)-1)(假设 A1 为带扩展名的文件名)。

















