如果改变标志为真,需要数组中的名称,例如list = [kernel,activemq]如何通过PowerShell提取。
[
{
"name" : "kernel",
"change_flag" : "TRUE",
"localpath" : "setupfiles\\controlroom\\kernel.jar",
"unpack" : "FALSE",
"filename" : ["",""]
},
{
"name" : "activemq",
"change_flag" : "TRUE",
"localpath" : "setupfiles\\controlroom\\activemq.jar",
"unpack" : "FALSE",
"filename" : ["",""]
},
{
"name" : "ignite-server",
"change_flag" : "FALSE",
"localpath" : "setupfiles\\controlroom\\ignite-server.jar",
"unpack" : "FALSE",
"filename" : []
}
]
使用 ConvertFrom-Json
cmdet来将你的文本转换为json,然后你可以使用 Where-Object
cmdlet。
$json =
@'
[
{
"name" : "kernel",
"change_flag" : "TRUE",
"localpath" : "setupfiles\\controlroom\\kernel.jar",
"unpack" : "FALSE",
"filename" : ["",""]
},
{
"name" : "activemq",
"change_flag" : "TRUE",
"localpath" : "setupfiles\\controlroom\\activemq.jar",
"unpack" : "FALSE",
"filename" : ["",""]
},
{
"name" : "ignite-server",
"change_flag" : "FALSE",
"localpath" : "setupfiles\\controlroom\\ignite-server.jar",
"unpack" : "FALSE",
"filename" : []
}
]
'@
($json | ConvertFrom-Json) | Where-Object change_flag -eq 'TRUE' | Select-Object -ExpandProperty name