xml - 使用 Windows 批处理文件更改 XML 文件中的标签数据

标签 xml windows batch-file

我有一个包含多个标签的 XML 文件,我正在尝试使用批处理脚本更改其中一个标签的内容。

xml 文件的示例是:

<ConfigurationData>
<ReportsFolder>\Reports</ReportsFolder>
<Helpfolder>\Help</HelpFolder>
<InstallationType>Terminal</InstallationType>
<LicenseFolder>..\License</LicenseFolder>
</ConfigurationData>

我正在尝试更改 <InstallationType> 之间的数据和 </InstallationType>到我选择的另一个变量。我想我需要某种 For 循环来找到 xml 文件的那部分,但我不知道如何只编辑那一部分。

最佳答案

您确实应该使用专为操作 XML 而设计的工具。

但在紧要关头,您可以使用任何可以执行正则表达式搜索和替换的工具来执行一个简单的解决方案,该解决方案可以按照您的布局处理文件,但可能会因逻辑上等效的 XML 文件而失败重新安排了物理布局。

我喜欢使用我编写的名为 REPL.BAT 的混合 JScript/批处理实用程序通过批处理脚本操作文本文件。该脚本将在 XP 及更高版本的任何 native Windows 计算机上运行,​​并且不需要安装任何第 3 方可执行文件。单击链接获取脚本代码和更详尽的描述。

使用 REPL.BAT,一个快速高效但简单的解决方案非常简单:

setlocal enableDelayedExpansion
set "newValue=myNewValue"
type "fileName.xml"|repl "(<InstallationType>).*(</InstallationType>)" "$1!newValue!$2" >fileName.xml.new
move /y "fileName.xml.new" "fileName.xml"

关于xml - 使用 Windows 批处理文件更改 XML 文件中的标签数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17054275/

相关文章:

java - 如何使用 DOM/SAX 或 java 中的任何解析器解析 bcompare xml 报告

c++ - QMainWindow centralWidget 边框

windows - 如何在 PowerShell 中将位置与主文件夹进行比较

windows - 如何通过 START 命令运行多个命令

java - 在 Java 中解析此 XML 的最简单方法?

c# - 强制 WCF 序列化未使用的类

android - 在 string.xml 中存储可格式化的字符串资源

mysql - 如何在 Windows 上使用 Node JS 访问 MariaDB

string - 批处理,比较两个文件并将差异写入另一个文件

java - 如何不退出调用的批处理文件