从命令行修改 XML

Modify XML from the command line

我有一个 xml 文件,其结构如下,我想从命令行编辑此文件。

<server>
    <service>
        <Connector port="8080" password="password1234"/>
    </service>
</server>

我想更改密码或端口号。

cmd 是否提供此选项,或者我需要额外的工具吗?我知道 PowerShell 可以做到,但这对我来说不是最佳解决方案。 (此外,我没有使用 powershell 运行 :( ).

搜索“password1234”并替换它也可以,因为我的文件中有一个默认密码,它始终相同,必须替换它。

为了演示我使用的一种方法,让我们首先在您的示例中创建 xml 文件:

为 XML 文件名定义一个变量

$xmlFile = "C:\temp\myconfig.xml"

定义一个 XML 字符串保存到文件

$xmlFromString = [xml]@"
<server>
<service>
<Connector port="8080" password="password1234"/>
</service>
</server>
"@

将xml内容保存到文件

$xmlFromString.Save($xmlFile)

生成的文件内容

Get-Content -Path $xmlFile
<server>
  <service>
    <Connector port="8080" password="password1234" />
  </service>
</server>

这是更改值的 PowerShell 代码 从文件

中获取XML 内容
$xml = [xml](Get-Content -Path $xmlFile)

查找元素/节点并更改属性值

$node = $xml.selectSingleNode('//server/service/Connector')
$node.port = "9090"
$node.password = "MyNewPassord4321"

保存 XML 内容 返回

$xml.Save($xmlFile)

结果

Get-Content -Path $xmlFile
<server>
  <service>
    <Connector port="9090" password="MyNewPassord4321" />
  </service>
</server>

将命令保存到 PowerShell ps1 文件并通过 PowerShell execute/run 保存。

我们需要有关您要完成的具体目标的更多详细信息,例如:

  • 用户/帐户运行脚本有什么权限?
  • 脚本 运行 来自哪里?本地 PC 或服务器?
  • 一个还是多个 servers/work 站?
  • 通过Windows调度程序任务执行?

希望对您有所帮助。 - 布鲁克斯