PowerShell foreach-object命令

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

使用PowerShell 3.0的启动版,以下是两种构造ForEach-Object命令的方法:

  • 操作说明
  • 脚本块

语法

语法1

ForEach-Object   
[-MemberName] <String>   
[-ArgumentList <Object[]>]   
[-Confirm]   
[-InputObject <PSObject>]   
[-WhatIf]  
[<CommonParameters>]

语法2

ForEach-Object   
[-Process] <ScriptBlock[]>   
[-Begin <ScriptBlock>]   
[-Confirm]   
[-End <ScriptBlock>]   
[-InputObject <PSObject>]   
[-RemainingScripts <ScriptBlock[]>]   
[-WhatIf]   
[<CommonParameters>]

参数

以下是ForEach-Object cmdlet中使用的一些参数:

-MemberName - 此参数用于指定调用方法和要获取的属性。
-ArgumentList - 此参数用于指定用于调用方法的参数数组。
-Confirm - 该参数在执行cmdlet之前提示进行确认。
-InputObject - 此参数用于指定输入对象。该cmdlet在每个输入对象上执行脚本块或操作语句。当在ForEach-Object中使用此参数时,此参数的值将被视为单个对象。
-WhatIf - 此参数用于显示如果执行cmdlet将会发生的情况。该cmdlet将不会执行。
-Process - 此参数用于指定在每个输入对象上执行的操作。输入描述操作的脚本块。
-Begin - 此参数用于指定脚本块,该脚本块在cmdlet处理任何输入对象之前执行。
-End - 此参数用于指定脚本块,该脚本块在cmdlet处理所有输入对象之后执行。
-RemainingScripts - 此参数用于指定所有那些脚本块,-Process参数不使用这些脚本块。

示例

示例:访问E:盘文件和文件夹

PS E:\xntutor.com\powershell> get-childitem  -Path 'E:' | foreach-object {write-host $_}
Program Files
Program Files (x86)
SnapPlugin
softwares
vhosts
wamp64
WeChat
worksp
workspace
xntutor.com
xunleiDownloads
XY
迅雷下载
hosts - 快捷方式.lnk
HwMonitor.rp
服务器安装帐号.xlsx

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

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


上一篇:PowerShell test-path命令

下一篇:PowerShell sort-object命令

关注微信小程序
程序员编程王-随时随地学编程

扫描二维码
程序员编程王

扫一扫关注最新编程教程