Powershell: динамические переменные в foreach

Я пытаюсь сделать некоторую математику для динамического списка пользователей, которые я буду использовать для запуска поиска и подсчета некоторых результатов анонимно, а затем добавить к текущему итогу для каждого пользователя. Так, например:

$users = Get-ADUser -filter blah
[int]$usercount = $users.count

for ($z=1; $z -le $usercount; $z++) {
    **** create variable here - $user$z ***
}

когда переменная создана, мне нужно, чтобы она была доступна для дальнейших циклов, где я добавлю счетчик к числу, уже сохраненному в переменной.

и нет, я не могу использовать переменную $user, потому что она должна сохраняться после завершения цикла foreach.

Итак, вопрос в том, как генерировать эту возрастающую переменную, не зная предела количества возможных объектов?

---редактировать---

добавление простого примера того, о чем я говорю...

после обратной связи я смотрю на хеш-таблицы, но все еще не могу понять, как ссылаться.

представьте себе игру в кости между динамическим списком людей с несколькими раундами. Я хочу увеличить за раунд их общее количество. Моя проблема последняя линия, где я пытаюсь обновить общее количество с рулоном. Как ссылаться на значение хэш-таблицы?

[CmdletBinding()]

param (
    [parameter(Mandatory=$false)][ValidateRange(1, [int32]::MaxValue)][int]$rounds = "15",
    [parameter(Mandatory=$false)][ValidateRange(1, [int32]::MaxValue)][int]$players = "2"
)

$ptotal = [ordered]@{}
for ($w=1; $w -le $players; $w++) {
    $ptotal.add("player$w", 0)
}

for ($z=1; $z -le $rounds; $z++) {
    Write-Host Round $z

    for ($y=1; $y -le $players; $y++) {

        $roll = (1..6 | get-random) + (1..6 | get-random)
        $ptotal.player$y = $ptotal.player$y + $roll
    }
}
13
задан Steven
14.12.2022 21:39 Количество просмотров материала 3472
Распечатать страницу

1 ответ

в вашем примере это будет $ptotal["player$y"] += $roll

вы можете использовать хеш-таблицы как ассоциативные массивы и объекты. Очень хорошее чтение о них есть https://kevinmarquette.github.io/2016-11-06-powershell-hashtable-everything-you-wanted-to-know-about/ (помимо официальной документации, разумеется)

0
отвечен maoizm 2022-12-16 05:27

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх