方法1:使用 dir /b 命令(基础提取)
作用:直接列出当前目录下的文件名(不含路径和元信息)。
命令示例:
dir /b > filenames.txt
- 效果:将当前目录所有文件名保存到
filenames.txt中。 - 扩展用法:
- 提取特定类型文件:
dir /b *.txt > text_files.txt
- 包含子目录文件:
dir /b /s C:\YourFolder > all_files.txt
- 提取特定类型文件:
方法2:使用 for 循环(高级处理)
作用:逐文件处理,支持截取名称、修改后缀等操作。
场景1:提取文件名(不含扩展名)
for %i in (*.txt) do echo %~ni >> names.txt
%~ni:仅提取文件名(如document.txt→document)。- 批处理脚本中需用
%%i(如for %%i in (...))。
场景2:提取文件名(含扩展名)
for %i in (*.*) do echo %~nxi >> full_names.txt
%~nxi:组合文件名和扩展名(如image.jpg)。
场景3:提取文件并重命名
for %i in (*.log) do copy "%i" "backup\%~ni.bak"
- 将所有
.log文件复制到backup文件夹,并改为.bak后缀。
方法3:结合 xcopy 和日志(提取路径+文件名)
作用:获取文件的完整路径。
xcopy /L /Y /S "C:\Source\*.*" "D:\Dummy\" > file_paths.txt
/L:仅列出文件(不实际复制)。- 删除末尾的
D:\Dummy\路径(可用文本工具批量替换)。
方法4:使用 PowerShell(更强大灵活)
若允许调用 PowerShell(Win7+支持),可更高效处理:
powershell -Command "Get-ChildItem -File | Select-Object Name > files.txt"
- 支持复杂筛选(如按大小、日期过滤)。
⚠️ 注意事项
- 特殊字符处理:文件名含空格时,用双引号包裹变量(如
"%~nxi")。 - 批量操作前备份:避免误删文件。
- 路径长度限制:Windows 路径最大 260 字符,超长路径需启用
\\?\前缀或使用 PowerShell。 - 管理员权限:操作系统文件需以管理员身份运行 cmd。
总结建议
| 场景 | 推荐命令 | 优势 |
|---|---|---|
| 快速导出文件名 | dir /b > list.txt |
简单易用 |
| 批量重命名/处理 | for 循环 |
灵活控制细节 |
| 提取完整路径 | xcopy /L |
保留目录结构 |
| 复杂条件筛选 | PowerShell | 功能最强大 |
方法均通过 Windows 10/11 命令提示符测试,符合微软官方文档规范,对于自动化任务,建议将命令写入
.bat批处理文件运行。
引用来源:Microsoft Dir 命令文档, For 命令参数详解
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6646.html