PowerShell:獲取 json 對象的值

我在轉

考慮這個 json 文件(TESTKill.json):

{
    "CLT_PROD": {
        "CLRDIR": "C:\\Test",
        "CLREXE": "notepad.exe"
    },
    "CLT_PROD_GHOST": {
        "CLRDIR": "C:\\Kontrolle",
        "CLREXE": "powershell.exe"
    },
    "CLTc_PROD_Test1": {
        "CLRDIR": "D:\\Kontrolle",
        "CLREXE": "powershell.exe"
    },
    "CLT_PROD_Test2_GHOST": {
        "CLRDIR": "F:\\Kontrolle",
        "CLREXE": "powershell.exe"
    },
    "CLT_PROD_Test3_GHOST": {
        "CLRDIR": "J:\\ABU",
        "CLREXE": "powershell.exe"
    }
}

我只想在 GUI 的下拉列表中給出對象名稱(CLT_PROD、CLT_PROD_GHOST 等)。為此,我有以下代碼:

$CLRJson = Get-Content -Raw -Path "C:\Temp\TESTKill.json" | ConvertFrom-Json
$CLRObjects = $CLRJson.psobject.Properties.name #select only the object names.

$objDropDownDBSchma = New-Object System.Windows.Forms.ComboBox
$objDropDownDBSchma.Location = New-Object System.Drawing.Size(40,40)
$objDropDownDBSchma.Size = New-Object System.Drawing.Size(200,20)
$objForm.Controls.Add($objDropDownDBSchma)
#Objekte aus der json-Datei in die DropDown Liste hinzufügen
Foreach ($CLRObjekte in $CLRObjects) {
    $objDropDownDBSchma.items.Add($CLRObjekte) 
}

它工作到這裡。我可以從下拉菜單中選擇一個對象。我現在想要的是,在我選擇一個對像後,我想單擊一個按鈕,因此,我應該能夠獲得相應對象的兩個變量“CLRDIR”和“CLREXE”的值。例如:如果我選擇了對象“CLT_PROD_GHOST”,我想在文本框中顯示該對象的這些變量的值。我不知道,如何編寫這個腳本。任何人有任何想法?

謝謝你的幫助:)

哈茲雷勒

您可以從下拉菜單中讀取所選項目的值。這將給出您要訪問的屬性的名稱。然後powershell可以從 動態訪問該屬性$CLRJson我不記得究竟如何訪問下拉菜單的選定項目。您還必須OnClickButton您所說事件處理程序中註冊一個腳本塊,它可能包含如下內容:

$name = $objDropDownDBSchma.SelectedItem.Value
$CLRObj = $CLRJson.$name
Write-Host $CLRObj.CLRDIR
Write-Host $CLRObj.CLREXE

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章