Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>On a related note, here's a search that will list all the files containing a particular regex search or string. It could use some improvement so feel free to work on it. Also if someone wanted to encapsulate it in a function that would be welcome.</p> <p>I'm new here so if this should go in it's own topic just let me know. I figured I'd put it her since this looks mostly related.</p> <pre><code># Search in Files Script # ---- Set these before you begin ---- $FolderToSearch="C:\" # UNC paths are ok, but remember you're mass reading file contents over the network $Search="Looking For This" # accepts regex format $IncludeSubfolders=$True #BUG: if this is set $False then $FileIncludeFilter must be "*" or you will always get 0 results $AllMatches=$False $FileIncludeFilter="*".split(",") # Restricting to specific file types is faster than excluding everything else $FileExcludeFilter="*.exe,*.dll,*.wav,*.mp3,*.gif,*.jpg,*.png,*.ghs,*.rar,*.iso,*.zip,*.vmdk,*.dat,*.pst,*.gho".split(",") # ---- Initialize ---- if ($AllMatches -eq $True) {$SelectParam=@{AllMatches=$True}} else {$SelectParam=@{List=$True}} if ($IncludeSubfolders -eq $True) {$RecurseParam=@{Recurse=$True}} else {$RecurseParam=@{Recurse=$False}} # ---- Build File List ---- #$Files=Get-Content -Path="$env:userprofile\Desktop\FileList.txt" # For searching a manual list of files Write-Host "Building file list..." -NoNewline $Files=Get-ChildItem -Include $FileIncludeFilter -Exclude $FileExcludeFilter -Path $FolderToSearch -ErrorAction silentlycontinue @RecurseParam|Where-Object{-not $_.psIsContainer} # @RecurseParam is basically -Recurse=[$True|$False] #$Files=$Files|Out-GridView -PassThru -Title 'Select the Files to Search' # Manually choose files to search, requires powershell 3.0 Write-Host "Done" # ---- Begin Search ---- Write-Host "Searching Files..." $Files| Select-String $Search @SelectParam| #The @ instead of $ lets me pass the hastable as a list of parameters. @SelectParam is either -List or -AllMatches Tee-Object -Variable Results| Select-Object Path Write-Host "Search Complete" #$Results|Group-Object path|ForEach-Object{$path=$_.name; $matches=$_.group|%{[string]::join("`t", $_.Matches)}; "$path`t$matches"} # Show results including the matches separated by tabs (useful if using regex search) &lt;# Other Stuff #-- Saving and restoring results $Results|Export-Csv "$env:appdata\SearchResults.txt" # $env:appdata can be replaced with any UNC path, this just seemed like a logical place to default to $Results=Import-Csv "$env:appdata\SearchResults.txt" #-- alternate search patterns $Search="(\d[-|]{0,}){15,19}" #Rough CC Match #&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload