从命令行修改 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调度程序任务执行?
希望对您有所帮助。 - 布鲁克斯
我有一个 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调度程序任务执行?
希望对您有所帮助。 - 布鲁克斯