如果我有一个PowerShell哈希对象,我怎样才能以可用于声明PowerShell哈希对象文字的格式输出它的内容?
举个简单的例子,假设您按如下方式初始化变量$ x:
$x = @{
a = 1
b = 2
c = @{
foo = "bar"
}
}
如果您只输入$x
,您将获得表格视图:
Name Value
---- -----
c {foo}
b 2
a 1
我知道还有其他格式化程序,但我没有找到一个格式化它作为一个漂亮的打印PowerShell文字,就像我在上面声明的那样。
此ConvertTo-Expression
cmdlet可以将大多数(递归)对象序列化为PowerShell表达式:
$x | ConvertTo-Expression
@{
'c' = @{'foo' = 'bar'}
'b' = 2
'a' = 1
}
我不确定这是否是您的想法,但您可以使用{}
表示法将变量声明为脚本块。然后,当您需要哈希表输出时,可以调用(&
)脚本块。因此,当您输入$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