<p>执行管道时,管道中的命令会应用于每个对象。 在某些情况下,可能需要使用 ForEach-Object cmdlet 来处理管道中的数据。 将数据存储在数组中时,ForEach 构造支持处理数组中的每个项。</p>
讯享网
ForEach 构造使用以下语法:
讯享网
在前面的示例中,有一个名为 的数组,其中包含 Active Directory 域服务 (AD DS) 用户对象。 ForEach 构造会为每个对象处理一次大括号之间的 Windows PowerShell 命令。 处理命令时, 是包含数组中每个项的变量。 在第一次迭代中, 包含 ,在第二次迭代中, 包含 。 这会一直持续到数组中的所有项都已处理一次。
在脚本中,ForEach 构造是处理已放入数组的项的最常用方法。 它易于使用,因为无需了解项数即可进行处理。
前面的示例在大括号之间仅有一个命令,但可以添加许多命令,这些命令将针对每个循环进行处理。 按照约定,大括号之间的命令缩进是为了使脚本更易于查看。 缩进不是技术要求,但却是一种很好的做法。

ForEach 循环中的变量命名应是有意义的。 大多数时候,将循环中使用的变量清楚地识别为数组的单个实例。 例如,对于名为 的数组,循环中使用的变量可能是 。 你可能会注意到带有单个字母的变量示例,该字母与数组的首字母相同。 但是,这应该仅用在简单的代码中,其中很容易判断它们是相关的。
在 PowerShell 7 中,已将 -Parallel 参数添加到 ForEach-Object cmdlet。 这样,管道就可以同时处理多个对象。 相较于标准 ForEach 循环,同时处理多个对象所提供的性能更佳。 如果使用的是 PowerShell 7,应考虑这一点。 以下示例说明了如何将 ForEach-Object 与 -Parallel 参数配合使用。
默认情况下,-Parallel 参数支持一次处理五个项。 可以使用 -ThrottleLimit 参数将其修改为更大或更小的值。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/142607.html