You can use the Where-Object cmdlet alongside regex patterns for filtering objects in PowerShell.
The following method shows how you can do it with syntax.
Method 1: Using Where-Object with Regex
$files = Get-ChildItem -Path "C:\temp\log\"
$txtFiles = $files | Where-Object { $_.Name -match "\.txt$" }
Write-Output $txtFiles
This example will filter files with the .txt
extension and display a filtered list of .txt files.
The following example shows how you can use this method.
Using Where-Object with Regex in PowerShell
You can use the Where-Object cmdlet in conjunction with the -match operator to filter files with the .txt
extension.
# Get list of files in directory $files = Get-ChildItem -Path "C:\temp\log\" # Filter the list to get only files with a .txt extension using regex $txtFiles = $files | Where-Object { $_.Name -match "\.txt$" } # Output the .txt files Write-Output $txtFiles
Output:
In this example, the Get-ChildItem cmdlet retrieves a list of files in the C:\temp\log\
directory and stores it in the $files
variable.
The Where-Object cmdlet filters the $files
array and uses the regex patterns "\.txt$"
to each object’s Name
property. The -match
operator checks if the Name
property matches the specified regex pattern and stores the result in $txtFiles.
Finally, the filtered list of .txt files is displayed using the Write-Output cmdlet
Conclusion
I hope the above article on using Where-Object with regex pattern in PowerShell is helpful to you.
You can find more topics about Active Directory tools and PowerShell basics on the ActiveDirectoryTools home page.