带格式列表的哈希表转换回哈希表powershell
问题描述:
我有一个关于进入Powershell中的对象值的问题。带格式列表的哈希表转换回哈希表powershell
我有一个函数返回对象|格式列表。现在我将返回值赋给变量,并想从中获取值。请看下面的例子:
$output = @{};
$output.A= "123";
函数返回:$ output |格式列表,给了我:
Name : A
Value : 123
在这种情况下,我可以用$ output.A获得价值,但是当它包装成功能我不知道如何以检索它
function testFunction() {
$output = @{};
$output.A= "123";
return $output | Format-List
}
$result = testFunction
$result.A #gives empty value
任何人都可以帮助这个?我无法访问testFunction,所以我无法修改它。
答
function ConvertFrom-FormatListHashtable {
param ($InputObject)
PROCESS {
$tmp = ($InputObject | out-string).Trim() | ConvertFrom-String
$tmpCount = ($tmp | gm -MemberType NoteProperty).count
$i = 1
do {
$output = @{}
$output.Add($tmp.$("p$($i+2)"),$tmp.$("p$($i+5)"))
$output
$i=$i+6
}
while ($i -lt $tmpCount)
}
}
在你的榜样叫
ConvertFrom-FormatListHashtable $result
Name Value
---- -----
A 123
的问题是功能的外部模块的一部分:https://github.com/ChackDan/Service-Fabric/blob/master/Scripts/ServiceFabricRPHelpers/ ServiceFabricRPHelpers.psm1返回:return $ output |格式清单;这是我的问题:) – danrok
那么,你可以迭代输出并提取/解析信息。但我认为这是不可靠的。这个功能真的很奇怪。我只是简单地在本地修改它。 – wOxxOm
同意。作者应该*不*使用'Format-List'发送输出。你想要的对象数据,而不是它的格式化表示。 –