如果我有一个PowerShell哈希对象,如何以一种可以用来声明PowerShell哈希对象常量的格式输出其内容?
作为一个简单的示例,假设您按如下所示初始化变量$ x:
$x = @{
a = 1
b = 2
c = @{
foo = "bar"
}
}
如果您仅输入$x
,则将获得表格视图:
Name Value
---- -----
c {foo}
b 2
a 1
我知道还有其他格式化程序,但是我没有找到能将其格式化为漂亮打印的PowerShell文字的格式化程序,就像我上面的声明那样。
答案 0 :(得分:4)
此ConvertTo-Expression
cmdlet可以将大多数(递归)对象序列化为PowerShell表达式:
$x | ConvertTo-Expression
@{
'c' = @{'foo' = 'bar'}
'b' = 2
'a' = 1
}
答案 1 :(得分:0)
我不确定这是否是您的初衷,但是您始终可以使用{}
表示法将变量声明为脚本块。然后,当您需要哈希表输出时,可以调用(&
)脚本块。因此,当您输入$x
时,您可以保留原始格式。
# Declaration
$x = {@{
a = 1
b = 2
c = @{
foo = "bar"
}
}}
#Retrieval of $x contents
$x
@{
a = 1
b = 2
c = @{
foo = "bar"
}
}
# Calling the scriptblock
& $x
Name Value
---- -----
c {foo}
b 2
a 1