中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何将文件文件里对应的属性值替换到XML文件里?
作者:
标题: 如何将文件文件里对应的属性值替换到XML文件里? 上一主题 | 下一主题
sghys
新手上路





积分 14
发帖 6
注册 2008-7-17
状态 离线
『楼 主』:  如何将文件文件里对应的属性值替换到XML文件里?

呵,麻烦各位大大帮忙,问题比较急(弄了半天啦都没搞好,55...) C盘下有两个文件 文本文件connInfo.txt内容如下 loginUser=sa loginPass=sa targetIp=191.168.1.100 db_name=ora XML文件内容如下 <Context> <ResourceParams name="jdbc/oa"> <parameter> <name>username</name> <value>!loginUser!</value>//替换这里的用户名 </parameter> <parameter> <name>password</name> <value>!loginPass!</value>//替换这里的密码 </parameter> <parameter> <name>driverClassName</name> <value>net.sourceforge.jtds.jdbc.Driver</value> </parameter> <parameter> <name>url</name> <value>jdbc:jtds:sqlserver://!targetIp!:1433/!db_name!</value>//替换这里地址与名称 </parameter> </ResourceParams> </Context> 批处理怎么样才能生成如下XML文件,最好有完整批处理代码.谢谢各位了 <Context> <ResourceParams name="jdbc/oa"> <parameter> <name>username</name> <value>sa</value> </parameter> <parameter> <name>password</name> <value>sa</value> </parameter> <parameter> <name>driverClassName</name> <value>net.sourceforge.jtds.jdbc.Driver</value> </parameter> <parameter> <name>url</name> <value>jdbc:jtds:sqlserver://191.168.1.100:1433/ora</value> </parameter> </ResourceParams> </Context>


2008-7-17 15:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 2 楼』:  

@echo off
for /f "tokens=2 delims==" %%a in ('findstr /i "loginUser" "connInfo.txt"') do set user=%%a
for /f "tokens=2 delims==" %%a in ('findstr /i "loginPass" "connInfo.txt"') do set pass=%%a
for /f "tokens=2 delims==" %%a in ('findstr /i "targetIp" "connInfo.txt"') do set ip=%%a
for /f "tokens=2 delims==" %%a in ('findstr /i "db_name" "connInfo.txt"') do set name=%%a
change "test.xml" /from "!loginUser!" /to "%user%"
change "test.xml" /from "!loginPass!" /to "%pass%"
change "test.xml" /from "!targetIp!" /to "%ip%"
change "test.xml" /from "!db_name!" /to "%name%"
change.exe http://upload.cn-dos.net/img/427.zip




2008-7-17 16:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复
sghys
新手上路





积分 14
发帖 6
注册 2008-7-17
状态 离线
『第 3 楼』:  

呵,楼上的谢了 自己也研究了一下: 批处理如下: @echo off&setlocal enabledelayedexpansion for /f "delims== tokens=1,2*" %%a in (test.txt) do ( if "%%a"=="loginUser" set loginUser=%%b if "%%a"=="loginPass" set loginPass=%%b if "%%a"=="targetIp" set targetIp=%%b if "%%a"=="db_name" set db_name=%%b ) echo %loginUser% echo %loginPass% echo %targetIp% echo %db_name% set loginUser=%loginUser% set loginPass=%loginPass% set targetIp=%targetIp% set db_name=%db_name% if not exist contract.xml goto 2 del contract.xml :2 for /f "delims=" %%i in (contract_conf.xml) do (echo.%%i>>contract.xml) pause text.txt内容如下: loginUser=sa loginPass=sa targetIp=192.168.1.100 db_name=ora contract_conf.xml内容如下: <Context> <ResourceParams> <parameter> <name>username</name> <value>!loginUser!</value> </parameter> <parameter> <name>password</name> <value>!loginPass!</value> </parameter> <parameter> <name>driverClassName</name> <value>net.sourceforge.jtds.jdbc.Driver</value> </parameter> <parameter> <name>url</name> <value>jdbc:jtds:sqlserver://!targetIp!:1433/!db_name!</value> </parameter> </ResourceParams> </Context>


2008-7-17 17:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 4 楼』:  

没必要搞那么复杂。
@echo off & Setlocal EnableDelayedExpansion

for /f "delims=" %%$ in (connInfo.txt) do set %%$
for /f "delims=" %%@ in (contract_conf.xml) do echo.%%@


2008-7-21 06:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: