从命令行修改XML

Tob*_*123 5 xml powershell command-line cmd windows-7

我有一个结构如下的xml文件,我想从命令行编辑这个文件.

<server>
<service>
<Connector port="8080" password="password1234"/>
</service>
</server>
Run Code Online (Sandbox Code Playgroud)

我想更改密码或端口号.cmd是否提供此选项,还是需要额外的工具?我知道powershell可以做到,但这对我来说不是最好的解决方案.(除了我没有得到它与powershell运行:().搜索"password1234"并替换它也是可以的,因为我的文件中有一个默认密码,它始终是相同的,必须更换.

Bro*_*oks 5

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

为 XML 文件名定义变量

$xmlFile = "C:\temp\myconfig.xml"
Run Code Online (Sandbox Code Playgroud)

定义要保存到文件的 XML 字符串

$xmlFromString = [xml]@"
<server>
<service>
<Connector port="8080" password="password1234"/>
</service>
</server>
"@
Run Code Online (Sandbox Code Playgroud)

将xml内容保存到文件中

$xmlFromString.Save($xmlFile)
Run Code Online (Sandbox Code Playgroud)

结果文件内容

Get-Content -Path $xmlFile
Run Code Online (Sandbox Code Playgroud)
<server>
  <service>
    <Connector port="8080" password="password1234" />
  </service>
</server>
Run Code Online (Sandbox Code Playgroud)

以下是用于更改值的 PowerShell 代码:从文件中获取 XML 内容

$xml = [xml](Get-Content -Path $xmlFile)
Run Code Online (Sandbox Code Playgroud)

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

$node = $xml.selectSingleNode('//server/service/Connector')
$node.port = "9090"
$node.password = "MyNewPassord4321"
Run Code Online (Sandbox Code Playgroud)

保存 XML 内容并退出

$xml.Save($xmlFile)
Run Code Online (Sandbox Code Playgroud)

结果

Get-Content -Path $xmlFile
Run Code Online (Sandbox Code Playgroud)
<server>
  <service>
    <Connector port="9090" password="MyNewPassord4321" />
  </service>
</server>
Run Code Online (Sandbox Code Playgroud)

将命令保存到 PowerShell ps1 文件并通过 PowerShell 执行/运行它。

我们需要更多有关您想要完成的任务的详细信息,例如:

  • 运行脚本的用户/帐户有什么权限?
  • 脚本将从哪里运行?本地PC还是服务器?
  • 一台或多台服务器/工作站?
  • 通过 Windows 计划任务执行?

希望这有帮助。——布鲁克斯