Powershell 对列表使用for循环,并将元素设置为环境变量,然后获取值
我对powershell一点也不熟悉,只在几个命令中需要它。我希望有人能帮助我。我有一个名为Powershell 对列表使用for循环,并将元素设置为环境变量,然后获取值,powershell,for-loop,Powershell,For Loop,我对powershell一点也不熟悉,只在几个命令中需要它。我希望有人能帮助我。我有一个名为optionConfig.json的json文件,其内容如下: { "test1": ["options_size", "options_connection", "options_object"], "test2":["options_customArgs", "options_noUDP", "options_noName"] } 在我的powershell文件中,到目前为止我只有一行代码,这就是
optionConfig.json
的json文件,其内容如下:
{
"test1": ["options_size", "options_connection", "options_object"],
"test2":["options_customArgs", "options_noUDP", "options_noName"]
}
在我的powershell文件中,到目前为止我只有一行代码,这就是获取json文件的内容
$rawData=Get Content-Raw-Path“optionConfig.json”| ConvertFrom json
我计划在我的系统上有一个名为test
的环境变量,其值为test1
或test2
,从中,我将查看json文件中关联值中的列表元素。对于列表中的这些元素,我假设它们也是环境变量,我希望得到它们的值。(python中的列表理解在这里是完美的)。我是一个python爱好者,所以我不太确定如何在powershell中显示这一点,但我说我做了env=getEnvironmentVariable(test)
,这等于test1
。然后我会在$rawData.env中对I说类似于
返回getEnvironmentVariable(i)
我非常想要另一个列表或新的json对象,其中包含我们从原始json对象获得的假定环境变量的值
有没有一种方法可以在powershell中实现?如果有人能帮忙的话,那会很有帮助的。如果我有什么不清楚的地方,我道歉。谢谢
(编辑)我发现$rawData.Get-ChildItem Env:test
不起作用。为了从json文件中获得正确的列表,是否有人编写类似的内容
另外,设置一个新变量,如so
$var1=Get ChildItem Env.tool
和doing$rawData.$test.value
也没有效果。我看不出有问题,只需设置并使用$Env:test
$rawdata = Get-Content .\optionsconfig.json | convertfrom-json
$Env:Test="test1"
$rawdata.$ENV:Test
$Env:Test="test2"
$rawdata.$ENV:Test
样本输出
options_size
options_connection
options_object
options_customArgs
options_noUDP
options_noName
上面生成了一个[System.Collections.DictionaryEntry]
实例数组,每个实例表示一个环境变量的名称和值:
Name Value
---- -----
options_connection conn1
options_object obj1
options_size size1
要将上述内容转换为JSON,请执行以下操作:
Get-Item -Path env:* -Include $configObj.$env:test |
Select-Object Name, Value | ConvertTo-Json
注意:看似冗余的Select Object
调用对于去除PowerShell在幕后添加的其他属性是必要的,否则这些属性将显示在生成的JSON中。如果要重命名生成的JSON中的属性,无论如何都需要使用
Select Object
这将产生:
[
{
"Name": "options_connection",
"Value": "conn1"
},
{
"Name": "options_object",
"Value": "obj1"
},
{
"Name": "options_size",
"Value": "size1"
}
]
谢谢。这显然有助于找到这些价值观。我不知道$ENV。
[
{
"Name": "options_connection",
"Value": "conn1"
},
{
"Name": "options_object",
"Value": "obj1"
},
{
"Name": "options_size",
"Value": "size1"
}
]