Find string in files and subfolders (all list definition files)
#$sourceFolder="c:\temp\Documents"
#List Templates
$pattern = "<ListTemplate"
#Find all files with <List Template tag, exclude files in packages, select only Elements.xml files
$listDefinitionFiles = Get-ChildItem $sourceFolder -recurse |
Select-String -pattern $pattern |
group path |
select name|
Where-Object {-not($_.Name -match "\\pkg")}|
Where-Object {$_.Name -match "Elements.xml"}
Write-Host "'$pattern' found in following files: "
$listDefinitionFiles