通过变量名称中的变量遍历复杂对象

时间:2018-09-12 15:34:47

标签: powershell

我有一个从JSON字符串填充的复杂对象。

我正在尝试遍历名称本身具有变量的嵌套对象。

因此,如果我执行写入主机$ aaa.bbb.ccc1ccc.ddd ,我会得到一个有效的对象。
   如果我执行写入主机$ aaa.bbb.ccc2ccc.ddd ,我会得到一个有效的对象。

如果我将 $ i = 1 设置为

写入主机$ aaa.bbb.ccc $($ i)ccc.ddd 当然会失败。

如果我尝试 get-variable -valueonly -name“ aaa.bbb.ccc $($ i)ccc.ddd” 我收到一个错误:找不到名称为'aaa.bbb.ccc1ccc.ddd'的变量

说实话,我什至不能做 get-variable -valueonly -name“ aaa.bbb”

还有其他对象,例如aaa.bbb.dddd。我不想的。

如果$ i为[1..100],有人可以告诉我如何遍历此对象吗?

谢谢

1 个答案:

答案 0 :(得分:1)

在使用.引用运算符时,从3.0版开始,您可以将可扩展字符串替换为任何成员引用:

$aaa.bbb."ccc${i}ccc".ddd

因此在您的示例中,您可以这样做:

1..2 |ForEach-Object { $aaa.bbb."ccc${i}ccc".ddd }