我想知道是否有一种方法可以在哈希表或数组中存储/检索数据。例如,
$a = get-process
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id SI ProcessName ------- ------ ----- ----- ----- ------ -- -- ----------- 156 9 1924 220 ...23 0.06 3788 4 ActionUriServer 364 19 10676 22196 ...01 0.75 11432 4 ApplicationFrameHost 155 9 6360 10388 ...98 5.47 14940 0 audiodg
我需要将它存储在变量中。当我希望重试这个时,我应该能够使用索引值。 例如
$a[1][1]应该抓住我的价值'处理'
我粗略了解多维数组,但是,不确定如何将这些值推送到变量并将其编入索引。
将
foreach锻炼?
答案 0 :(得分:0)
如果确实想要解析格式化的输出而不是对Get-Process
返回的对象进行操作(或自定义格式设置)使用其中一个Format-*
cmdlet),您可以尝试:
Get-Process | Out-String -Stream | % { $a = @() } { $a += $null; $a[-1] = -split $_ }
Out-String -Stream
是获取Get-Process
返回的对象的格式化输出字符串表示所必需的,-Stream
通过管道单独传递每个结果行(通过默认情况下,Out-String
会立即传递整个结果字符串)。
上面很简单,但效率不高,因为为每个输入行重新创建了数组;为了解决这个问题,您可以使用[System.Collections.Generic.List[string[]]]
实例。
PowerShell数组基于0
,所以它包含$a[1][0]
Handles
1
的原因是格式化的输出以空行开头,但可以轻松修复。)