如何在ForEach-Object Parallel中设置计数器-PowerShell 7

问题描述

我在foreach块外定义了一个int变量,试图在该块内进行设置并在外部访问它。但是,当我运行此脚本时,出现以下错误。这似乎是基本的事情,但是我是PowerShell的新手。

错误'++'运算符仅适用于变量或属性

脚本

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

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

解决方法

更典型的习惯用法是返回一些属性:

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

Count             : 40
Average           :
Sum               :
Maximum           :
Minimum           :
StandardDeviation :
Property          : Error

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...