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

$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
    }
}

1 ответ1

0

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .