#!/usr/bin/pwsh <# .SYNTAX search-files.ps1 [] [] .DESCRIPTION searches the given pattern in the given files .LINK https://github.com/fleschutz/PowerShell .NOTES Author: Markus Fleschutz / License: CC0 #> param($Pattern = "", $Path = "") function ListScripts { param([string]$Pattern, [string]$Path) $List = Select-String -Path $Path -Pattern "$Pattern" foreach ($Item in $List) { New-Object PSObject -Property @{ 'Path' = "$($Item.Path)" 'Line' = "$($Item.LineNumber)" 'Text' = "$($Item.Line)" } } write-output "(pattern found at $($List.Count) locations)" } try { if ($Pattern -eq "" ) { $Pattern = read-host "Enter search pattern" } if ($Path -eq "" ) { $Path = read-host "Enter path to files" } ListScripts $Pattern $Path | format-table -property Path,Line,Text exit 0 } catch { write-error "ERROR: line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])" exit 1 }