[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理怎样实现交互式修改文件

用一个批处理对话交互,实现修改与批处理文件同目录下的xml文件里某几个地方的内容。
如 D盘temp目录下有个两文件
  D:\a.bat
  D:\contract.xml

a.bat内容:

@echo off
set /p targetIp=请设置数据库IP地址:
echo %targetIp%

set /p loginUser=请设置登陆数据库用户名:
echo %loginUser%

set /p loginPass=请设置登陆数据库密码:
echo %loginPass%

set /p db_name=新建数据库名称:
echo %db_name%  

   ::待实现功能的代码, 交互输入四项内容分别对应XML文件

contract.xml文件内容

<Context path="/" docBase="../../source" reloadable="false">
<Resource name="jdbc/oa" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/oa">
  <parameter>
   <name>factory</name>
   <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
  </parameter>
  <parameter>
   <name>maxActive</name>
   <value>100</value>
  </parameter>
  <parameter>
   <name>maxIdle</name>
   <value>30</value>
  </parameter>
  <parameter>
   <name>maxWait</name>
   <value>10000</value>
  </parameter>
  <parameter>
   <name>username</name>
   <value>登陆数据库用户名</value>
  </parameter>
  <parameter>
   <name>password</name>
   <value>登陆数据库密码</value>
  </parameter>
  <parameter>
   <name>driverClassName</name>
   <value>net.sourceforge.jtds.jdbc.Driver</value>
  </parameter>  
  <parameter>
   <name>url</name>
   <value>jdbc:jtds:sqlserver://数据库IP地址:1433/数据库名称</value>      
  </parameter>
</ResourceParams>
</Context>

把下面的代码保存为.bat文件
  1. @echo off&setlocal enabledelayedexpansion
  2. del contract.xml
  3. cls
  4. set /p targetIp=请设置数据库IP地址:
  5. set /p loginUser=请设置登陆数据库用户名:
  6. set /p loginPass=请设置登陆数据库密码:
  7. set /p db_name=新建数据库名称:
  8. for /f "delims=" %%i in (contract2.xml) do (echo.%%i>>contract.xml)
  9. pause>nul
复制代码
把下面的代码保存为contract2.xml,和上面的bat文件同一目录.然后动行上面的bat文件即可生成你要的contract.xml文件
  1. <Context path="/" docBase="../../source" reloadable="false">
  2. <Resource name="jdbc/oa" auth="Container" type="javax.sql.DataSource"/>
  3. <ResourceParams name="jdbc/oa">
  4.   <parameter>
  5.    <name>factory</name>
  6.    <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
  7.   </parameter>
  8.   <parameter>
  9.    <name>maxActive</name>
  10.    <value>100</value>
  11.   </parameter>
  12.   <parameter>
  13.    <name>maxIdle</name>
  14.    <value>30</value>
  15.   </parameter>
  16.   <parameter>
  17.    <name>maxWait</name>
  18.    <value>10000</value>
  19.   </parameter>
  20.   <parameter>
  21.    <name>username</name>
  22.    <value>!loginUser!</value>
  23.   </parameter>
  24.   <parameter>
  25.    <name>password</name>
  26.    <value>!loginPass!</value>
  27.   </parameter>
  28.   <parameter>
  29.    <name>driverClassName</name>
  30.    <value>net.sourceforge.jtds.jdbc.Driver</value>
  31.   </parameter>  
  32.   <parameter>
  33.    <name>url</name>
  34.    <value>jdbc:jtds:sqlserver://!targetIp!:1433/!db_name!</value>      
  35.   </parameter>
  36. </ResourceParams>
  37. </Context>
复制代码

TOP

楼主说  , 交互输入四项内容分别对应XML文件
我实在没看出对应的是什么?
给楼主提个建议:
1、最后能用正楷字,否则看你的帖累的很
2、提问的最后最好给个正确答案的样本、
3、把你所谓对应的内容,用其它颜色标注一下,这样别人才容易看懂你的意识,而不用从你一大堆内容去寻找规律。
技术问题请到论坛发帖求助!

TOP

谢谢大家,thanks for foxJL
已经解决了,非常感谢!

TOP

返回列表