查看: 176|回复: 1

【技术交流】快速提取某一文件夹下所有文件名称

[复制链接]

9047

主题

-18

回帖

3628

积分

版主

积分
3628
发表于 2026-5-19 09:09:25 | 显示全部楼层 |阅读模式
在需要获取文件名的文件夹中,新建一个txt格式的记事本文件。
在记事本文件中输入:
DIR *.* /B >C:\Users\Administrator\Desktop\LIST.TXT
将此记事本文件后辍名,由txt改为bat。会弹出重命名对话框,单击“是”。
右键“新建文本文档.bat”,以管理员身份运行,即可在电脑桌面生成list.txt文件。打开txt文件即可看到当前文件夹内的所有文件名列表。
本文的提取文件夹内文件名的方法,思路就是将文件保存到要提取文件名的目录下,保存为*.bat(*为文件名),然后以管理员身份运行就OK了。

1. 关于快速提取某一文件夹下所有文件名称,大家有什么经验可以分享?
2. 快速提取某一文件夹下所有文件名称需要注意哪些关键点?
3. 有没有相关的规范或案例可以参考?
回复

使用道具 举报

9047

主题

-18

回帖

3628

积分

版主

积分
3628
 楼主| 发表于 昨天 11:57 | 显示全部楼层
这个思路没问题,DIR /B 确实是最快的批处理方式。不过实际用下来,有几个地方建议改一下,不然换台电脑、换账户或者目录带空格就容易翻车。

关于输出路径

原帖里写的是 C:\Users\Administrator\Desktop\LIST.TXT,这个路径只适合当前用户是 Administrator 的机器。如果是普通账户,或者用户名不是 Administrator,批处理运行后可能直接报错,或者文件没生成到桌面。

建议改成两种写法:

■ 输出到当前文件夹:DIR /B > LIST.TXT
● 优点:不依赖桌面路径,运行完就在原目录里找
● 缺点:如果原目录权限不够,可能写不进去

■ 输出到当前用户桌面:DIR /B > "%USERPROFILE%\Desktop\LIST.TXT"
● 优点:换账户也能用
● 注意:路径里带空格时,引号不能省

如果批处理文件是放在目标文件夹里的,更稳一点可以写成:

@echo off
set "OUT=%USERPROFILE%\Desktop\LIST.TXT"
dir /b "%~dp0" > "%OUT%"
echo 已生成:%OUT%
pause

这里 %~dp0 表示批处理所在目录,这样不管从哪里双击运行,都只提取批处理所在文件夹的文件名。

关于是否包含子目录

DIR /B 默认只列当前目录下的文件,不包含子文件夹。

■ 如果只要当前文件夹文件名:DIR /B
■ 如果要包含所有子文件夹,并且带完整路径:DIR /S /B
■ 如果要包含所有子文件夹,但只想要文件名、不要路径:bat里写起来麻烦,建议用PowerShell

工程资料归档时,很多时候需要按目录结构核对,所以 DIR /S /B 反而更实用,能看出文件在哪个子目录里。

关于中文乱码

如果文件名是中文,导出来的LIST.TXT用某些软件打开可能乱码。常见原因是cmd默认编码和查看软件编码不一致。

■ 用记事本打开一般问题不大
■ 如果Excel打开乱码,可以先在bat开头加 chcp 65001 >nul,再用UTF-8方式查看
■ 更推荐用PowerShell导出,编码控制更清楚

更省事的PowerShell写法

如果电脑是Win10/Win11,其实不用写bat,在目标文件夹地址栏输入 powershell 回车,然后执行:

Get-ChildItem -File | Select-Object -ExpandProperty Name | Out-File -FilePath "[math]env:USERPROFILE\Desktop\LIST.txt" -Encoding UTF8

只导当前文件夹文件名。

如果要包含子目录,并且导出成CSV,方便Excel筛选:

Get-ChildItem -Recurse -File | Select-Object Name, FullName, Length, LastWriteTime | Export-Csv -NoTypeInformation -FilePath "[/math]env:USERPROFILE\Desktop\LIST.csv" -Encoding UTF8

这个比纯txt好用不少,文件名、路径、大小、修改时间都有,工程资料清点时比较方便。

几个小提醒

■ 一般不需要“以管理员身份运行”,除非目标文件夹在受保护目录里,比如某些系统目录或权限受限的工程盘
■ 如果目标路径或文件名有空格,批处理里路径最好加引号
■ 如果文件数量很大,建议先试一个小目录,确认输出格式没问题再跑全量
■ 如果是要做竣工资料或归档清单,建议保留完整路径和修改时间,别只导文件名,后面核对会麻烦

总结一句:临时用,改一下输出路径的bat就够了;长期做资料归档,建议用PowerShell导出CSV,更稳也更清楚。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:admin@archask.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|蜀ICP备20022646号

在本版发帖
会员粉丝群
返回顶部