PowerShell ForEach-Object
The ForEach-Object in PowerShell executes a block of statements against each item in a collection of input objects. These objects are passed through the pipeline or specified by using the -InputObject parameter.
With the Starting of PowerShell version 3.0, following are the two different ways for constructing the ForEach-Object command:
- Operation Statement
- Script Block
Syntax
Parameters
Following are the different parameters used in the ForEach-Object cmdlet:
-MemberName
This parameter is used to specify the method for calling and the property to get.
-ArgumentList
This parameter is used to specify the array of arguments for calling a method.
-Confirm
This parameter prompts you a confirmation before executing the cmdlet.
-InputObject
This parameter is used to specify the input objects. The cmdlet executes the block of script or the operation statement on each input object. When we use this parameter in the ForEach-Object, the value of this parameter is treated as a single object.
-WhatIf
This parameter is used to display what would happen if the cmdlet executes. The cmdlet will not execute.
-Process
This parameter is used to specify the operation, which is performed on each input object. Enter the script block, which describes the operation.
-Begin
This parameter is used to specify the script block, which executes before the cmdlet processes any input object.
-End
This parameter is used to specify the script block, which executes after the cmdlet processes all the input objects.
-RemainingScripts
This parameter is used to specify all those script blocks, which are not taken by the -Process parameter.
Example: Access the files and folders from the D: drive
In this example, we use the pipe (|) sign, which is used to pass the output of get-childitem to the ForEach-Object command. And the write-host is used to display that values.
In the command, $_ is a special variable that processes any value which is passed through the pipe.