DOS批处理:读取配置文件,格式 与 程序,例子
能否让dos批处理程序读取配置文件,类似于ini文件?
本人摸索出一套可行的方案。程序及配置文件举例如下。
此文目的有二:为感兴趣的同学抛砖引玉;记录备查。
配置文件:
#配置文件,解析配置变量 #配置文件每个设置值一行 #可以以“#”添加注释行 #行为可以添加“#”注释 #文件的路径可以使绝对路径,也可以是相对路径。windows 下,文件的路径必须用“/”而不是“\”表示 ####################################################### #通用配置 debug=1 #osql.exe连接字符串 osqlcnstr=-S127.0.0.1,21433 -E -h-1 -n -b -m15 -w 500 #bcp.exe连接字符串 bcpcnstr=-S127.0.0.1,21433 -T -c DBServer = (local) Database = testdb UID = testuser PWD = testpwd InputDataDir = .\DATA InputDataFile = CONTACTINFO.txt DTSLogFile = CVT_USRINFO.log ####################################################### |
批处理程序:
@echo off set debug=0 rem 配置文件以 “#”作为 行、行尾 注释符 rem 配置项不能包含空格和双引号 rem 配置值不能包含双引号 rem 去除空行、注释行。注意不能去掉行开始含有空格的行。取%%b,舍弃%%b echo. echo 环境变量配置如下: for /f "eol=# tokens=*" %%a in (%~n0.txt) do ( rem echo. if %debug%==1 echo debug 1:a=%%a. b=%%b. rem 去除行尾注释。取%%m,舍弃%%n for /f "delims=# tokens=1*" %%m in ( "%%a" ) do ( if %debug%==1 echo debug 2:m=%%m. n=%%n. rem 解析配置,去掉空行。取%%x,%%y,舍弃%%z for /f "delims== tokens=1,2*" %%x in ( "%%m" ) do ( if %debug%==1 echo debug 3:x=%%x. y=%%y. if not "%%y" == "" ( rem 去掉 配置项 的空白字符。 for /f %%k in ( "%%x" ) do ( rem 去掉 配置值 的空白字符。 for /f "tokens=1*" %%v in ( "%%y" ) do ( if "%%w" == "" ( echo .%%k.=.%%v. set %%k=%%v ) else ( echo .%%k.=.%%v %%w. set %%k=%%v %%w ) ) ) ) ) ) ) echo 读取配置完毕. echo. |
分类:
其他
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)