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

简介:

需求:读取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,如需转载请自行联系原作者

相关文章
|
2月前
|
存储 运维 Kubernetes
批处理及有状态等应用类型在 K8S 上应该如何配置?
批处理及有状态等应用类型在 K8S 上应该如何配置?
|
7月前
|
Windows
使用bat批处理来简化程序使用
使用bat批处理来简化程序使用
|
1月前
|
监控 数据可视化 Java
性能工具之Jmeter 后置监听器可视化数据逻辑
【2月更文挑战第29天】性能工具之Jmeter 后置监听器可视化数据逻辑
27 2
性能工具之Jmeter 后置监听器可视化数据逻辑
|
12月前
|
消息中间件 网络协议 关系型数据库
Java应用程序读取外部配置文件
当我们在服务器上安装一些软件服务时,如 MySQL、Kafka、ES 等,在启动服务的时候,脚本会读取默认路径下的配置文件,如果配置文件没有放到默认的路径下,我们也可以通过参数的方式指定,通过这个配置文件,可以灵活方便的开始某些功能或调整某些参数,不用重新对源码进行修改、编译和发布了。 所以,我们工作当中有时希望可以把配置文件放在程序外,这样就可以做到配置与业务分离,在项目中使用的 properties,这里就说一下如何用 properties 配置文件,默认加载 classpath 下的文件,如果通过参数指定了文件路径就可以使用外部配置了。
|
测试技术
Loadrunner 脚本开发-从文件读取数据并参数化
Loadrunner 脚本开发-从文件读取数据并参数化
62 0
% 批处理变量引导符
% 批处理变量引导符
69 0
|
druid Java 关系型数据库
避坑指南:Spring配置数据源的三种方式
避坑指南:Spring配置数据源的三种方式
避坑指南:Spring配置数据源的三种方式
|
存储 C语言
【C 语言】文件操作 ( 配置文件读写 | 框架搭建 | 写出或更新配置文件 | 读取配置文件 )
【C 语言】文件操作 ( 配置文件读写 | 框架搭建 | 写出或更新配置文件 | 读取配置文件 )
138 0
QtApplets-实时读取配置文件
QtApplets-实时读取配置文件
138 0
QtApplets-实时读取配置文件
|
XML JavaScript Java
Spring框架里解析配置文件的准确位置
Spring框架里解析配置文件的准确位置
Spring框架里解析配置文件的准确位置

热门文章

最新文章