需求:读取station.ini文件,创建父节点(上、下、客场站集)文件夹到D盘,并根据配置拷贝当前文件夹下各个目录到指定的父节点文件夹。
以下为.bat文件内容:
@echo off & setlocal enabledelayedexpansion
COLOR 0a
FOR /F "eol=; tokens=1* delims==" %%i IN (G:Sourcestation.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=客场站集
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/rgzn-zryycl/29203.html