gpt4 book ai didi

xml - 通过 PowerShell 写入和读取 XML 配置

转载 作者:数据小太阳 更新时间:2023-10-29 02:56:20 25 4
gpt4 key购买 nike

我正在努力使用 PowerShell 读取 XML 文件。

主要思想是——我有一个标志,指示是读取还是写入配置文件。如果需要写入文件 - 脚本获取参数并将它们保存到 XML 文件中。如果标志设置为“读取”- PowerShell 脚本不带参数,但它应该从保存的 XML 中获取它们。

问题是从 XML 读取。我使用以下代码写入 XML:

$Config = @{}
$Config.parameter1 = $parameterValue
$Config.dictionaryWithArray = $dictWithArray
($Config | ConvertTo-XML).Save("$path")

保存的XML文件结果为:

<?xml version="1.0"?>
<Objects>
<Object Type="System.Collections.Hashtable">
<Property Name="Key" Type="System.String">parameter1</Property>
<Property Name="Value" Type="System.String">value_in_variable_parameter_Value</Property>
<Property Name="Key" Type="System.String">dictionaryWithArray</Property>
<Property Name="Value" Type="System.Collections.Generic.Dictionary`2[System.String,System.String[]]">
<Property Name="Key" Type="System.String">key1</Property>
<Property Name="Value" Type="System.String[]">
<Property Type="System.String">subkey1</Property>
<Property Type="System.String">subvalue1</Property>
</Property>
<Property Name="Key" Type="System.String">key2</Property>
<Property Name="Value" Type="System.String[]">
<Property Type="System.String">subkey2</Property>
<Property Type="System.String">subvalue2</Property>
</Property>
... and so on

我尝试使用 http://blogs.technet.com/b/heyscriptingguy/archive/2012/09/13/powertip-use-powershell-to-easily-read-an-xml-document.aspx 等方法读取此配置, 但没有运气。

你能告诉我如何读取用这种方法编写的配置文件吗?或者可能有更好的方法在写入之前序列化配置,这样会更容易阅读?

最佳答案

有多种方法可以使用 XML 执行此操作,但您可能阅读过的大多数博客都没有涉及从 XML 读取自定义/嵌套对象。虽然我个人不知道有什么方法可以做到这一点,但我确信存在解决方案。

Or may be there is the better way to serialize config before writing

这就是我想重点回答的问题。您可以使用 Export-CliXml及其对应物Import-CliXml .这些 cmdlet 应该可以更轻松地完成工作。

#.... your other code that generates $config
$Config | Export-Clixml $path

然后您可以根据需要回调配置并检查值,就像您在将数据写入文件之前所做的那样。

$fileConfig = Import-Clixml $path
$fileConfig.parameter1

注意对象变得多么复杂,因为您可能需要使用 Export-CliXml-Depth .

-Depth

Specifies how many levels of contained objects are included in the XML representation. The default value is 2.

关于xml - 通过 PowerShell 写入和读取 XML 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34266173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com