我正在嘗試從地圖中檢索資訊。
地圖如下所示:
$VideoID:
[Object[7]]
[0]: @{Key=Load_Sheet; Value =}
[1]: @{Key=Load_Folded; Value =FormLoad}
[2]: @{Key=Load_Media; Value =}
...
(空值真的應該是這樣的)
此資訊的獲取類似于從 xml 獲取資訊,除了相同的鍵,我獲取的是 VideoID 而不是 AlarmID。
我正在嘗試檢索 Load_Folded 的資訊,并且回傳 null,即使我可以看到它應該是 FormLoad。
$tmp = "Load_Folded"
$videoIdentifierString = $VideoIDs.$tmp #gives null...same as if I do $VideoIDs[$tmp] or $VideoIDs[$($tmp)] or $VideoIDs["$($tmp)"]
知道如何從地圖中獲取此資訊嗎?我不能遍歷這個映射,只需要獲取給定鍵的值。
這適用于 powershell 5.1 和 VS Code。
uj5u.com熱心網友回復:
這涉及在 PowerShell 中過濾陣列中的物件,一個很好的檔案可以對此有一個很好的概念,Where-Object即使有很多方法可以比其他方法更有效。
鑒于pscustomobject您目前擁有的陣列:
$result = @(
[pscustomobject]@{ Key = 'Load_Sheet'; Value = '' }
[pscustomobject]@{ Key = 'Load_Folded'; Value = 'FormLoad' }
[pscustomobject]@{ Key = 'Load_Media'; Value = '' }
)
- 使用
Where-Object:
($result | Where-Object Key -EQ 'Load_Folded').Value
- 使用
.Where(..):
$result.Where({ $_.Key -eq 'Load_Folded' }).Value
- 使用
foreach和if條件:
foreach($item in $result) {
if($item.Key -eq 'Load_Folded') {
$item.Value
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/428266.html
下一篇:如何將輸出格式化為檔案
