批处理读取配置文件并作相应处理-阿里云开发者社区

开发者社区> 技术小阿哥> 正文

批处理读取配置文件并作相应处理

简介:
+关注继续查看

需求:读取station.ini文件,创建父节点(上、下、客场站集)文件夹到D盘,并根据配置拷贝当前文件夹下各个目录到指定的父节点文件夹。

以下为.bat文件内容:

@echo off & setlocal enabledelayedexpansion
COLOR 0a
FOR /F "eol=; tokens=1*  delims==" %%i IN (G:\Source\station.ini) do (
    set p=%%i
    set q=%%j
    if "!p:~0,1!"=="[" (
        if "!p:~-1!"=="]" (
            rem 获取站名
            set name=!p:~1,-1!
        )
    )else (        
        set fatherNm=!p!
        set fileNm=!q! 
        if "!fatherNm!"=="fatherName" (
            rem 获取父节点名称并创建文件夹
            if not exist d:\!fileNm! md d:\!fileNm!            
            set creatFile=!fileNm!          
        )        
    )
    if not "!name!"=="" (
        if not "!creatFile!"=="" (       
            rem 拷贝G:\Source下各个文件夹到对应的站集 遍历G:\Source文件
            for /d %%a in (*) do (
                set sonFileNm=%%a
                if "!sonFileNm!"=="!name!" (                
                    if not exist d:\!creatFile!\!sonFileNm! ( 
                        rem 以下赋值目的在于剔除末尾空格
                        set covertFileNm=!creatFile: =!
                        xcopy "G:\Source\!sonFileNm!" "d:\!covertFileNm!\!sonFileNm!\" /e/h/r/y                        
                    ) else (
                    echo 存在同名文件&goto :eof
                    )
                )
            )
            set name=
            set creatFile=
         )
    )
)
pause

各个文件存放位置如下图所示:

 

结果为在D盘生成三个文件夹。

配置文件内容:(station.ini)

;;[SJT]当前站站码缩写
;;stationNm当前站名
;;areaNo当前站场码
;;fatherName归属于某个站集
;;=前后不要有空格
[sjt]
stationNm=上峰尾
areaNo=0x06
fatherName=上行站集

[ssc]
stationNm=上出发
areaNo=0x04
fatherName=上行站集

[ssd]
stationNm=上到达
areaNo=0x02
fatherName=上行站集

[sxf]
stationNm=下峰尾
areaNo=0x05
fatherName=下行站集

[sxc]
stationNm=下出发
areaNo=0x03
fatherName=上行站集

[sxd]
stationNm=下到达
areaNo=0x01
fatherName=上行站集

[snk]
stationNm=客场
areaNo=0x07
fatherName=客场站集
 



本文转自 韬光星夜 51CTO博客,原文链接:http://blog.51cto.com/xfqxj/1075107,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
批处理bat文件的写作教程及实例
怎么写批处理bat文件echo、@、call、pause、rem(小技巧:用::代替rem)是批处理文件最常用的几个命令。echo 表示显示此命令后的字符 echo off 表示在此语句后所有运行的命令都不显示命令行本身 @与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。
774 0
thinkphp常用系统配置大全
'APP_DEBUG' => false, // 是否开启调试模式'APP_DOMAIN_DEPLOY' => false, // 是否使用独立域名部署项目'APP_PLUGIN_ON' => false, // 是否开启插件机制'APP_FILE_CASE' => false, // 是否检查文件的大小写 对Windows平台有效'APP_GROUP_DEPR' => '.
1372 0
MYSQL数据库的套接字文件,pid文件,表结构文件
socket文件:当用Unix域套接字方式进行连接时需要的文件。 pid文件:MySQL实例的进程ID文件。 MySQL表结构文件:用来存放MySQL表结构定义文件。 套接字文件 Unix系统下本地连接MySQL可以采用Unix域套接字方式,这种方式需要一个套接字(socket)文件。
789 0
产品百科 | RTC Android SDK 播放音效文件的接口方法
阿里云 RTC SDK 为您提供伴奏文件和音效文件的相关接口方法,您可以通过本文了解其具体的实现方法。
69 0
Spring Boot读取配置文件的几种方式
Spring Boot获取文件总的来说有三种方式,分别是@Value注解,@ConfigurationProperties注解和Environment接口。这三种注解可以配合着@PropertySource来使用,@PropertySource主要是用来指定具体的配置文件。
524 0
13694
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载