gpt4 book ai didi

powershell - 以 PowerShell 对象表示法 (PSON) 保存哈希表

转载 作者:行者123 更新时间:2023-12-04 01:36:46 25 4
gpt4 key购买 nike

问题 Loading a PowerShell hashtable from a file?文档如何将包含 PSON 格式的哈希表的文件加载到变量中,但是如何将哈希表保存到 PSON 格式的文件中?

哈希表:

@{            
"name" = "report 0"
"parameters" = @(
@{"name" = "parameter 0"; "default" = 1; "values"=1,2,3,4},
@{"name" = "parameter 1"; "default" = 'A'; "values" = 'A','B','C'}
)
}

最佳答案

5 年后,我粘贴在原始答案中的 cmdlet 经历了如此多的更新,以至于它已经完全过时了。因此我替换了 codeReadMe带有最新版本的链接。
除了支持更多的对象类型和更好的格式,它现在输出一个表达式( ScriptBlock ),默认显示类型仍然是 String并允许使用调用运算符 & 直接调用:

$Object = &($Object | ConverTo-Expression)
ConvertTo-Expression ConvertTo-Expression可以使用以下命令从 PowerShell Gallery 下载 cmdlet:
Install-Script -Name ConvertTo-Expression
ReadMe
完整的自述文件(和源代码)可从 GitHub 获得:
https://github.com/iRon7/ConvertTo-Expression
安装
下载后( Install-Script -Name ConvertTo-Expression ),脚本可以通过 dot sourcing 简单调用:
. .\ConvertTo-Expression.ps1
您还可以考虑通过将脚本重命名为 PowerShell 模块 ( .psm1 ) 文件并将其移动到 $env:PSModulePath 中定义的模块文件夹之一,从而将脚本转换为 PowerShell 模块。 .更多详情见: How to Write a PowerShell Script Module .
回答
以下是序列化问题中特定示例(分配给 $Craig )的一些可能选项:
ConvertTo-Expression $Craig
@{
parameters =
@{
name = 'parameter 0'
default = 1
values =
1,
2,
3,
4
},
@{
name = 'parameter 1'
default = 'A'
values =
'A',
'B',
'C'
}
name = 'report 0'
}
限制 TreeView 扩展:
( Expand -0 将输出一行, Expand -1 也将删除不必要的空格)
ConvertTo-Expression $Craig -expand 3
@{
parameters =
@{name = 'parameter 0'; default = 1; values = 1, 2, 3, 4},
@{name = 'parameter 1'; default = 'A'; values = 'A', 'B', 'C'}
name = 'report 0'
}
保留显式类型(强类型):
ConvertTo-Expression $Craig -expand 3 -Strong
[hashtable]@{
parameters = [array](
[hashtable]@{name = [string]'parameter 0'; default = [int]1; values = [array]([int]1, [int]2, [int]3, [int]4)},
[hashtable]@{name = [string]'parameter 1'; default = [string]'A'; values = [array]([string]'A', [string]'B', [string]'C')}
)
name = [string]'report 0'
}
(注意:根据 PowerShell 设计,哈希表不是按顺序排列的,但如果需要,您可以改用 [Ordered] 类型。)

关于powershell - 以 PowerShell 对象表示法 (PSON) 保存哈希表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15139552/

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