Цикл по сложному объекту с переменной в имени переменной - PullRequest
0 голосов
/ 12 сентября 2018

У меня есть сложный объект, который заполняется из строки JSON.

Я пытаюсь перебрать вложенный объект, в имени которого есть переменная.

Итак, если я сделаю Write-Host $ aaa.bbb.ccc1ccc.ddd , я получу верный объект обратно.
если я сделаю Write-Host $ aaa.bbb.ccc2ccc.ddd , я получу верный объект обратно.

Если я установлю $ i = 1 , и я сделаю

Write-Host $ 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 голосов
/ 12 сентября 2018

При использовании оператора ссылки ., начиная с версии 3.0, вы можете заменить расширяемую строку любой ссылкой на элемент:

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

так что в вашем примере вы могли бы сделать:

1..2 |ForEach-Object { $aaa.bbb."ccc${i}ccc".ddd }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...