中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-09 07:57
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,253 会员排行
DOS批处理 & 脚本技术(批处理室) » 如何将文件文件里对应的属性值替换到XML文件里?
可打印版本  801 / 3
第1楼 sghys 发表于 2008-07-17 15:09
新手上路 发帖 6 积分 14
如何将文件文件里对应的属性值替换到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>
第2楼 HAT 发表于 2008-07-17 16:36
版主 发帖 5,017 积分 9,023


change.exe
http://upload.cn-dos.net/img/427.zip
第3楼 sghys 发表于 2008-07-17 17:40
新手上路 发帖 6 积分 14
呵,楼上的谢了

自己也研究了一下:

批处理如下:
@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>
第4楼 lxmxn 发表于 2008-07-21 06:15
版主 发帖 4,938 积分 11,386
没必要搞那么复杂。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023