我试图通过名为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_PATH
和VALIDATOR_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的解决方案。