powershell - Powershell 不会返回哈希表键值
问题描述
我有一个变量是哈希表:
PS C:\depot\code\rp4vm> $skey
key value
--- -----
Splitter version 5.2.P1(a.362)
OS version VMkernel na1-pdesx09
我正在尝试访问键的值,但似乎无法访问。无论我如何称呼他们,我都一无所获:
PS C:\depot\code\rp4vm> $skey."Splitter version"
PS C:\depot\code\rp4vm> $skey["Splitter version"]
我检查了它是否有键值对:
PS C:\depot\code\rp4vm> $skey.key
Splitter version
OS version
PS C:\depot\code\rp4vm> $skey.value
5.2.P1(a.362)
VMkernel na1-pdesx09.americas.global-legal.com
我正在运行 PowerShell 7,但关于如何处理哈希表的帮助文件中似乎没有任何其他变化。有谁知道我如何捕获信息?
解决方案
你所拥有的绝对不是哈希表。更有可能是一组具有属性的对象key
,value
就像这样
$skey = [PsCustomObject]@{'key' = 'Splitter version'; 'value' = '5.2.P1(a.362)'},
[PsCustomObject]@{'key' = 'OS version'; 'value' = 'VMkernel na1-pdesx09'}
展示:
$skey | ForEach-Object {
Write-Host ('{0} = {1}' -f $_.key, $_.value)
}
应该显示
分离器版本 = 5.2.P1(a.362) 操作系统版本 = VMkernel na1-pdesx09
如果您愿意,可以转换为 Hashtable:
$hash = @{}
$skey | ForEach-Object {
$hash[$_.key] = $_.value
}
在手机上输入这个,所以希望格式正确..
推荐阅读
- octave - Runge-Kutta 方法数值求解二阶非线性微分方程 - Octave
- spring-boot - 使用 Spring Session 外部化会话存储时,Infinispan 没有编组整个 RefreshableKeycloakSecurityContext
- apache-spark - Spark Kotlin - 创建空数据集
- javascript - 在 Axios 和 NodeJS 中使用 content-disposition
- flutter - 国际化本地化生成空套利模板
- reactjs - 带有 Reactjs 的 DHTMLX 甘特图不显示滚动
- python - Tensorflow 2:如何在自定义损失中使用张量 y_true 的形状?
- intellij-idea - IntelliJ/WebStorm 的过时 CloudFormation 模式?
- java - What re the restrictions around Java EXPLICIT type conversion?
- typescript - 当它们具有相同的名称时,如何强制打字稿将参数解释为命名空间而不是类 - gRPC