Как установить счетчик в ForEach-Object Parallel - PowerShell 7

У меня есть переменная int, определенная вне блока foreach, я пытаюсь установить ее внутри блока и получить доступ к ней снаружи. Однако, когда я запускаю этот скрипт, я получаю ошибку ниже. Вроде бы базовая вещь, но я новичок в PowerShell.

Ошибка: оператор "++" работает только с переменными или свойствами.

Сценарий:

[int]$ErrorCount = 0
1..3 | ForEach-Object -ThrottleLimit 40 -Parallel  {
            $using:ErrorCount++
}

$FinishMessage = "Errors: {0}" -f $ErrorCount
echo $FinishMessage

1 ответ

Более типичной идиомой было бы возвращение некоторых свойств:

1..40 | ForEach-Object -ThrottleLimit 40 -Parallel {
  sleep 1
  [pscustomobject]@{Error = $true }
} | measure error

Count             : 40
Average           :
Sum               :
Maximum           :
Minimum           :
StandardDeviation :
Property          : Error
Другие вопросы по тегам