• 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.
    
    
    
  • 相关阅读:
    TStringList 常用操作(转自南山古陶)
    在Delphi中使用Indy控件实现邮件群发
    GSM手机SMS编码解码
    建别人进不了删不掉的文件夹
    播放 wav 文件
    delphi inherited,纯虚
    PDU编码规则
    sql函数
    基于GPRS的LED电子显示屏
    结对编程 队友代码分析
  • 原文地址:https://www.cnblogs.com/jinzhenshui/p/1823473.html
Copyright © 2020-2023  润新知