批处理 生成 xml 文件 参考样版修改 bat

::这是需要的效果,只列出两个文件夹,
::如果有更多文件夹时要自动增加 <Class=文件夹x> 和 </Class>
<List>
<Class=文件夹1> <-- 这行要增加
<ClassName="文件1" Pic="文件夹1\文件1.txt">
文件1
</ClassNode>
<ClassName="文件2" Pic="文件夹1\文件2.txt">
文件2
</Class> <-- 这行要增加
<-- 增加空行
<Class=文件夹2> <-- 这行要增加
</ClassNode>
<ClassName="文件3" Pic="文件夹2\文件3.txt">
文件3
</ClassNode>
<ClassName="文件4" Pic="文件夹2\文件4.txt">
文件4
</Class> <-- 这行要增加
</List>

::将下面内容保存为批处理,然后运行会看到效果! 这个效果需要修改!
@echo off
color 2f
title 生成 xml !
md 文件夹1
md 文件夹2
echo. >>文件夹1\文件1.txt
echo. >>文件夹1\文件2.txt
echo. >>文件夹2\文件3.txt
echo. >>文件夹2\文件4.txt
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
echo.^<List^> >List.xml
setlocal enabledelayedexpansion
for /r %%i in (*.txt) do (
set s=%%i
set d=!s:%~dp0=!
echo ^<ClassName="%%~ni" Pic="!d!"^>
echo %%~ni
echo ^</ClassNode^>) >>List.xml
echo. >>List.xml
echo.^</List^> >>List.xml
start notepad List.xml
!..................................!
回答者没有看清我的题目,我是文件夹中有文本文件。
然后将文件夹中的文件写入到 xml 中。
时间过了很久,自己已经解决这个问题了,还是感谢你的回答,分照样奖给你。

第1个回答  推荐于2016-05-31
1
2
3
4
5
6
7
8
9
10

@Echo Off&Setlocal Enabledelayedexpansion
For /f "tokens=*" %%i in (2.xml) do (
Set str=
For /f "tokens=1-5* delims== " %%j in ("%%i") do (
If "%%j"=="<TaskScheduleConfig" (Set str= %%j %%k="2" %%m="3" %%o)
)
If defined str (Echo !str!) else (Echo %%i)
If defined str (Echo !str!) else (Echo %%i)>>2_new.xml
)
Pause

假设2.xml内容为:
<xml>
<TaskScheduleConfig Times="1" TimesType="2" />
<xml>追问

.........................................

本回答被提问者采纳
相似回答