m
So which one do you use? Well, the answer is, “It depends.” You can iterate through a collection of items by using either the ForEach statement or the ForEach-Object cmdlet. ForEach is perfect if you have plenty of memory, want the best performance, and do not care about passing the output to another command via the pipeline. ForEach-Object (with its aliases % and ForEach) take input from the pipeline. Although it is slower to process everything, it gives you the benefit of Begin, Process, and End blocks. In addition, it allows you to stream the objects to another command via the pipeline. In the end, use the approach that best fits your requirement and the capability of your system.