2024-02-06 13:28:45 +01:00
|
|
|
function Get-PathItems {
|
|
|
|
param (
|
|
|
|
[string]$Path
|
|
|
|
)
|
|
|
|
if (Test-Path -Path $Path -PathType Container) {
|
|
|
|
return Get-ChildItem -Path $Path -Recurse -Force -Attributes !Directory #Directories can't be scanned by Select-String so don't show them in listing
|
|
|
|
}
|
|
|
|
throw "Virable path $($Path) must be a Folder or Container."
|
|
|
|
}
|
|
|
|
|
|
|
|
function Get-Lines {
|
|
|
|
param (
|
|
|
|
[string]$StingFilePath
|
|
|
|
)
|
|
|
|
if ((Test-Path -Path $StingFilePath -PathType Leaf)){
|
|
|
|
$item = Get-Item -Path $StingFilePath
|
|
|
|
$ext = $item.Extension
|
|
|
|
if($ext -like "*.txt"){
|
|
|
|
return Get-Content -Path $StingFilePath
|
|
|
|
}
|
|
|
|
}
|
|
|
|
throw "Variable StringFilePath $($StringFilePath) must be a txt file"
|
|
|
|
}
|
|
|
|
|
|
|
|
function Check-Files {
|
|
|
|
param (
|
|
|
|
[string]$Path,
|
|
|
|
[string]$StingFilePath
|
|
|
|
)
|
|
|
|
$Items = Get-PathItems -Path $Path
|
|
|
|
$Lines = Get-Lines -StingFilePath $StingFilePath
|
|
|
|
Write-Host "Items Found $($Items.Count)"
|
|
|
|
Write-Host $Lines.Count
|
|
|
|
<#$Items | Foreach-Object -ThrottleLimit 5 -Parallel {
|
|
|
|
#"starting on $_"
|
|
|
|
foreach ($line in $Lines){
|
|
|
|
try {
|
|
|
|
Select-String -Path $_ -Pattern $line
|
|
|
|
}
|
|
|
|
catch {
|
|
|
|
Write-Host "$_ couldn't be processed by Select-String"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#"ended $_"
|
|
|
|
}#>
|
|
|
|
|
|
|
|
<##>foreach($item in $Items){
|
|
|
|
#Write-Host "starting on $item"
|
|
|
|
foreach ($line in $Lines){
|
|
|
|
try {
|
2024-02-06 13:39:18 +01:00
|
|
|
Select-String -Path $item -Pattern $line | Select-Object -Property Path,LineNumber,Pattern | Format-Table -AutoSize
|
2024-02-06 13:28:45 +01:00
|
|
|
}
|
|
|
|
catch {
|
|
|
|
Write-Host "$item couldn't be processed by Select-String"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#Write-Host "ended $item"
|
|
|
|
}<##>
|
|
|
|
}
|