Xml 将数据传递到powershell脚本

Xml 将数据传递到powershell脚本,xml,json,powershell,powershell-2.0,Xml,Json,Powershell,Powershell 2.0,我正在使用PowerShell脚本,该脚本需要从文件中获取数据,并将其用作写入其中的函数的参数。因此,基本上我所寻找的是类似于JSON或XML文件的东西,但我不确定该使用什么 我要找的是一个相对容易使用的,传递数据类型或对象而不是字符串的 一部分数据在XML中看起来像这样: <RegistryEntriesList> <registryPath>HKLM:\\Software\\Lenovo\\Configuration\\</registryPath> &l

我正在使用PowerShell脚本,该脚本需要从文件中获取数据,并将其用作写入其中的函数的参数。因此,基本上我所寻找的是类似于JSON或XML文件的东西,但我不确定该使用什么

我要找的是一个相对容易使用的,传递数据类型或对象而不是字符串的

一部分数据在XML中看起来像这样:

<RegistryEntriesList>
<registryPath>HKLM:\\Software\\Lenovo\\Configuration\\</registryPath> <registryProperty>PATH </registryProperty>
<registryPath>HKLM:\\Software\\Lenovo\\Configuration\\</registryPath> <registryProperty>LOGS </registryProperty>
<registryPath>HKLM:\\Software\\Lenovo\\Connections\\</registryPath> <registryProperty>MinConnectionsPerTarget</registryProperty>
<registryPath>HKLM:\\Software\\Lenovo\\Connections\\</registryPath> <registryProperty>MaxWorkingIscsiConnections</registryProperty>
<registryPath>HKLM:\\Software\\Lenovo\\Connections\\</registryPath> <registryProperty>WaitIntervalInMilliseconds</registryProperty>
还有更多像这样的

基本上,我将使用这些自动化的目的。我知道PowerShell4.0本身就有来自JSON的cmdlet ConvertFrom,但它在PS2.0上不起作用,我希望我的脚本可以在任何版本的PowerShell上运行,即任何版本的Windows。所以我想XML可能是一个更好的选择,但我不确定。还有其他选择吗


我已经浏览了很多关于JSON和XML的Web链接,它们只是让我很困惑。请允许我在JSON、XML和其他东西中选择一个更好的选项。谢谢你回答这个问题

对于PowerShell 2.0,您可能希望使用XML。对于任何支持JSON的东西,我都会使用它:它通常更轻量级

另一种方法是将psd1文件与Import-LocalizedData cmdlet一起使用。假设您在当前文件夹中创建文件“Data.psd1”,如下所示:

@{ 注册表项列表=@ @{ 注册表路径='HKLM:\Software\Lenovo\Configuration' registryProperty='PATH' }, @{ 注册表路径='HKLM:\Software\Lenovo\Configuration' registryProperty='LOGS' } } 正如您所看到的,它是一个带有单键注册表项列表的哈希表。它的值是可用于散列的哈希表的集合。 您可以按如下方式导入此数据并传递给您的命令:

我们的测试指挥部。。。 函数新注册表项{ param [字符串]$RegistryProperty, [字符串]$RegistryPath 获取RegistryPath:$RegistryPath和RegistryProperty:$RegistryProperty } 导入LocalizedData-BindingVariable Params-BaseDirectory-文件名Data.psd1 $Params.RegistryEntriesList中的每个$item{ 新注册表项@item }
非常感谢你的回复。我计划编写一个脚本,可以在任何版本的PowerShell上使用。看来XML可能是我的选择。psd1看起来不错,但它的缺点是什么?Windows环境是否完全支持psd1?PowerShell中使用psd1文件的目的很少,包括模块清单。与XML不同的是,它们并没有用于ISDE PowerShell。因此,如果您想使用更广泛且与较旧版本的PowerShell兼容的内容,XML是您的最佳选择。
"entredInput":[{"title":"Powershell","desc":"first"},
      {"title":"json","desc":"third"},
      {"title":"Configfile","desc":"second"}]