使用repl.bat

时间:2017-10-26 12:58:56

标签: xml windows batch-file

我试图通过名为repl.bat的助手批处理文件(dbenham)修改多个XML属性的值 - 从以下网址下载: https://www.dropbox.com/s/qidqwztmetbvklt/repl.bat

以下是我的XML文件的简短示例:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="WORKING_PATH" value="C:\Working\" />
    <add key="VALIDATOR_APPLICATION" value="C:\Validator\Apps\Process.exe" />
  </appSettings>
</configuration>

我想使用属性名称WORKING_PATHVALIDATOR_APPLICATION修改2个值,而不是使用硬编码值修改。

以下是SampleOut.xml:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="WORKING_PATH" value="D:\Project\Working" />
    <add key="VALIDATOR_APPLICATION" value="D:\Project\Working\Apps\Process.exe" />
  </appSettings>
</configuration>

我可以在以下命令的帮助下逐一编辑

type sample.xml | repl "(<add key=\qWORKING_PATH\q value=\q).*?(\q.*>)" "$1D:\Project\Working\$2" X > new.xml

type sample.xml | repl "(<add key=\qVALIDATOR_APPLICATION\q value=\q).*?(\q.*>)" "$1D:\Project\Working\Apps\Process.exe$2" X > new.xml

问题是,如果我尝试在1个单行命令中编辑,它只执行最后一次更改

type sample.xml | repl "(<add key=\qWORKING_PATH\q value=\q).*?(\q.*>)" "$1D:\Project\Working\$2" | repl "(<add key=\qVALIDATOR_APPLICATION\q value=\q).*?(\q.*>)" "$1D:\Project\Working\Apps\Process.exe$2" X > new.xml

以上命令的输出:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="WORKING_PATH" value="C:\Working\" />
    <add key="VALIDATOR_APPLICATION" value="D:\Project\Working\Apps\Process.exe" />
  </appSettings>
</configuration>

我不想使用PowerShell,我只需要使用repl.bat的解决方案。

0 个答案:

没有答案