繁体   English   中英

使用批处理脚本编辑XML文件

[英]Edit XML file with batch script

我想编辑位于C:\\CONFIG\\TEST_CONFIG.XML的XML文件,并替换其中的2个不同值。 我希望用此文件替换以下条件:

<test.tbl>
CONFIG!CONFIG2 |1 T |125 **TN###** |151 **TN###**
</TEST.tbl>

"|125 TN###" must equal %USERINPUT1%

"|151 TN###" must equal %USERINPUT2%

我发现其他帖子接近但遇到困难。

另一个要注意的是,我需要保留所有间距和特殊字符。

@echo off
setlocal DisableDelayedExpansion

set USERINPUT1=First Value
set USERINPUT2=Second Field

for /F "delims=:" %%a in ('findstr /N /C:"CONFIG!CONFIG2 |1 T |125 **TN###** |151 **TN###**" C:\CONFIG\TEST_CONFIG.XML') do set num=%%a
(for /F "tokens=1* delims=:" %%a in ('findstr /N "^" C:\CONFIG\TEST_CONFIG.XML') do (
   set "line=%%b"
   setlocal EnableDelayedExpansion
   if "%%a" equ "%num%" (
      set "line=!line:|125 **TN###**=%USERINPUT1%!"
      set "line=!line:|151 **TN###**=%USERINPUT2%!"
   )
   echo(!line!
   endlocal
)) > temp.xml
move /Y temp.xml C:\CONFIG\TEST_CONFIG.XML

编辑添加示例

input.xml中:

<test.tbl>
<p>Support the free distribution of this forecast by visiting our sponsors website.<p><b>Select forecast - </b>
<a href="?fdate=140403">Tomorrow</a> / <a href="?fdate=140404">Friday</a> / <a href="?fdate=140405">Saturday</a><p><hr>
CONFIG!CONFIG2 |1 T |125 **TN###** |151 **TN###**
<h5>Viewing forecast for Thursday, 3rd April, 2014</h5><p>Forecast last reviewed on Wednesday, 02/04/14 at 16:17
</TEST.tbl>

与Output.xml:

<test.tbl>
<p>Support the free distribution of this forecast by visiting our sponsors website.<p><b>Select forecast - </b>
<a href="?fdate=140403">Tomorrow</a> / <a href="?fdate=140404">Friday</a> / <a href="?fdate=140405">Saturday</a><p><hr>
CONFIG!CONFIG2 |1 T First Value Second Field
<h5>Viewing forecast for Thursday, 3rd April, 2014</h5><p>Forecast last reviewed on Wednesday, 02/04/14 at 16:17
</TEST.tbl>

确保在替换中使用正确的匹配字符串。 在您的示例中,您输入:

CONFIG!CONFIG2 |1 T |125 **TN###** |151 **TN###**

在您的数据中,但是:

"|125 TN###" must equal %USERINPUT1%
"|151 TN###" must equal %USERINPUT2%

缺少数据中**的匹配字符串中。 我在替换中添加了** ,否则它们将失败...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM