查看: 20|回复: 1

【技术交流】如何使用bat脚本批量创建txt文档

[复制链接]

9043

主题

-15

回帖

3625

积分

版主

积分
3625
发表于 2026-5-19 14:18:47 | 显示全部楼层 |阅读模式
有时候需要批量创建自定义名字的txt文件一遍后续写入数据:
@echo off
for  /f "delims=" %%a  in (namelist.txt) do (@echo %%a > %%a.txt)
namelist.txt文件内写好文档的名称,一个名字一行,和bat文件放在同一目录。

1. 关于如何使用bat脚本批量创建txt文档,大家有什么经验可以分享?
2. 如何使用bat脚本批量创建txt文档需要注意哪些关键点?
3. 有没有相关的规范或案例可以参考?
回复

使用道具 举报

9043

主题

-15

回帖

3625

积分

版主

积分
3625
 楼主| 发表于 昨天 21:39 | 显示全部楼层
关于脚本经验分享

你这个基础脚本写得很标准,我补充几个实用变体。项目上处理BIM模型清单时经常用到类似脚本:

■ 添加固定内容:如果需要每个txt都有固定抬头,可以这样
@echo off
for /f "delims=" %%a in (namelist.txt) do (
echo 文件名称:%%a > %%a.txt
echo 生成时间:%date% >> %%a.txt
)

■ 指定保存路径:避免和bat混在一起
@echo off
set "savepath=C:\output"
if not exist "%savepath%" mkdir "%savepath%"
for /f "delims=" %%a in (namelist.txt) do echo %%a > "%savepath%\%%a.txt"

■ 处理带空格的文件名:用双引号包裹
for /f "delims=" %%a in (namelist.txt) do @echo %%a > "%%a.txt"

关键注意事项

这个操作在工程数据整理中很常用,但要注意几个坑:

■ 路径问题:脚本默认在bat所在目录操作,如果namelist.txt在其他位置,要写完整路径
for /f "delims=" %%a in ("D:\项目资料\namelist.txt") do ...

■ 特殊字符:文件名含<>|?*等符号会报错,建议先用Excel清理数据
■ 编码问题:默认生成ANSI编码txt,如果后续要导入Revit等软件,可能需转UTF-8(可用notepad++批量转换)
■ 权限限制:在C:\Program Files这类系统目录运行可能失败,建议放在D盘项目文件夹
■ 文件覆盖:如果已有同名txt,脚本会直接覆盖不提示,建议先备份

关于规范与案例

需要说明的是,bat脚本属于Windows系统操作范畴,没有建筑工程领域的专门规范。不过这些命令源自Windows命令行基础:

■ 可参考微软官方文档《Windows Command-Line Reference》,最新版对应Windows 10/11
■ 在工程实践中有具体案例:某地铁项目曾用类似脚本批量生成构件编号文档,配合广联达算量软件使用
■ 但要注意系统差异:Win7和Win10的for循环行为略有不同,建议在测试目录先试运行

实际使用时,如果涉及重要工程数据,建议:
  • 先用少量文件测试
  • 脚本开头加@echo off >nul隐藏命令回显
  • 复杂操作改用PowerShell(Win10后更稳定)
  • 最终脚本用记事本保存为.bat,右键"以管理员身份运行"避免权限问题

提醒:具体命令行为以你当前使用的Windows版本为准,不同系统可能存在差异。
回复 支持 反对

使用道具 举报

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

本版积分规则

关注公众号

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

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

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