In this blog post, we’ll explore using the PowerShell For loop and ForEach-Object cmdlet effectively in our scripts.
The PowerShell For Loop
The For loop is a traditional loop that allows us to execute a block of code a specified number of times. It consists of three parts: the initialisation, the condition, and the iterator. Here’s the basic syntax of a For loop in PowerShell:
for ($i = 1; $i -le 5; $i++) {
# Code to execute
}Where:
$iis the loop variable that is typically used to track the iteration.$i -le 5is the condition that determines when the loop should continue.$i++is the iterator that increments the loop variable.
Here’s an example of using a For loop to print numbers from 1 to 5:
for ($i = 1; $i -le 5; $i++) {
Write-Host "Number: $i"
}When we run this script, it will display the numbers 1 through 5.
The ForEach-Object Cmdlet
The ForEach-Object cmdlet is used to iterate through items in a collection, such as an array or a list. It processes each item one at a time. The basic syntax of a ForEach-Object loop in PowerShell is as follows:
$collection | ForEach-Object {
# Code to execute for each item
}Here’s an example of using a ForEach-Object loop to process items in an array:
$fruits = "apple", "banana", "cherry", "date"
$fruits | ForEach-Object {
Write-Host "Processing $_"
}In this example, the loop processes each item in the $fruits array and displays a message for each one.
Comparing For and ForEach-Object
Both the For loop and the ForEach-Object cmdlet have their use cases:
- Use a
Forloop when we need to execute code a specific number of times, such as iterating over a range of numbers or repeating an operation. - Use a
ForEach-Objectcmdlet when we want to process items in a collection, such as arrays or lists.
By understanding the differences between these loops, we can choose the right one for our specific scripting needs and make our PowerShell scripts more efficient and powerful.





