PowerShell - Filter Versus Function
To support me, you can subscribe to the channel, share and like the videos, disable your ad blocker or make a donation. Thank you!
Hello,
A filter is a ‘simplified’ function type that automatically uses the Process block (no Begin and End blocks) and therefore executes on every object.
A filter natively manages pipeline objects and performs a loop on each object.
# Explicit Process blockFunction Test-Function { process { $_ }}# Implicit Process blockFilter Test-Filter { $_ }# Behaviour check1..3 | Test-Function1..3 | Test-Filter
Filter is interesting for doing simple checks and actions on each object in the pipeline, for the rest use a function instead.
# Create a folder if it doesn't exist with FilterFilter New-Folder{ if (!(Test-Path -Path $_ -PathType Container)) { New-Item -Path $_ -ItemType Directory }}c:\test','c:\test2' | New-Folder
# Create a folder if it doesn't exist with a functionFunction New-Folder { process { if (!(Test-Path -Path $_ -PathType Container)) { New-Item -Path $_ -ItemType Directory } }}'c:\test3','c:\test4' | New-Folder
Related links
Powershell - Testing network connectivity and port accessibility
Testing network connectivity and port accessibility with PowershellPowershell - Display network connections (equivalent to netstat)
Display network connections (listening ports, active connections...)Powershell - Testing name resolution (equivalent to nslookup)
Powershell commands to test name resolution (equivalent to nslookup)Powershell - View and manage DNS configuration of network interfaces
Powershell commands to display and manage DNS configuration of network interfacesPowershell - Managing IP configuration of network interfaces
Powershell commands to view and modify the IP configuration of network interfacesPowershell - Managing the status and configuration of network interfaces
Powershell commands to view and modify the status and configuration of network interfaces (disable IPv6, enable/disable an interface)
Follow me on
Support me
Last content
Powershell - Testing network connectivity and port accessibility
Powershell - Display network connections (equivalent to netstat)
Powershell - Testing name resolution (equivalent to nslookup)
Powershell - View and manage DNS configuration of network interfaces
Powershell - Managing IP configuration of network interfaces
Powershell - Managing the status and configuration of network interfaces
Powershell and the Left Hand Side
Powershell - Managing disks, partitions and volumes