PowerShell ForEach-Object

17 Mar 2025 | 阅读 2 分钟

PowerShell 中的 ForEach-Object 对输入对象集合中的每个项目执行一个语句块。 这些对象通过管道传递或使用 -InputObject 参数指定。

从 PowerShell 3.0 版本开始,以下是构建 ForEach-Object 命令的两种不同方式

  1. 操作语句
  2. 脚本块

语法


参数

以下是 ForEach-Object cmdlet 中使用的不同参数

-MemberName

此参数用于指定要调用的方法和要获取的属性。

-ArgumentList

此参数用于指定调用方法的参数数组。

-Confirm

此参数在执行 cmdlet 之前提示您确认。

-InputObject

此参数用于指定输入对象。 cmdlet 对每个输入对象执行脚本块或操作语句。 当我们在 ForEach-Object 中使用此参数时,此参数的值被视为单个对象。

-WhatIf

此参数用于显示如果执行 cmdlet 将会发生什么。 cmdlet 不会执行。

-Process

此参数用于指定在每个输入对象上执行的操作。 输入描述该操作的脚本块。

-Begin

此参数用于指定在 cmdlet 处理任何输入对象之前执行的脚本块。

-End

此参数用于指定在 cmdlet 处理完所有输入对象后执行的脚本块。

-RemainingScripts

此参数用于指定未被 -Process 参数接受的所有脚本块。

示例:从 D: 驱动器访问文件和文件夹

PowerShell ForEach-Object

在本例中,我们使用管道 (|) 符号,该符号用于将 get-childitem 的输出传递给 ForEach-Object 命令。 并且 write-host 用于显示这些值。

在命令中,$_ 是一个特殊变量,它处理通过管道传递的任何值。


下一个主题PowerShell Sort-object