Как установить счетчик в 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