mirror of
https://github.com/softwaredevelop/mql5.git
synced 2026-07-27 20:47:44 +00:00
63 lines
2.1 KiB
PowerShell
63 lines
2.1 KiB
PowerShell
<#
|
|
.SYNOPSIS
|
|
Searches for a specific text string inside files within a directory tree.
|
|
|
|
.DESCRIPTION
|
|
This script recursively searches for files containing a specific string.
|
|
It returns the file paths of the matches. It uses case-sensitive search.
|
|
|
|
.PARAMETER SearchTerm
|
|
The string you want to find inside the files. (Required)
|
|
|
|
.PARAMETER Path
|
|
The root directory to start the search. Defaults to the current directory (.).
|
|
|
|
.PARAMETER Filter
|
|
File extension filter (e.g., "*.mqh", "*.mq4"). Defaults to "*" (all files).
|
|
|
|
.EXAMPLE
|
|
# Run from script file:
|
|
.\FindString.ps1 -SearchTerm "ATR_Calculator.mqh"
|
|
|
|
.EXAMPLE
|
|
# Search only in specific file types:
|
|
.\FindString.ps1 -SearchTerm "ATR_Calculator.mqh" -Filter "*.mq*"
|
|
|
|
.EXAMPLE
|
|
# One-liner command (without saving this script):
|
|
Get-ChildItem -Recurse -Filter *.mq* | Select-String -Pattern "ATR_Calculator.mqh" -CaseSensitive -List | Select-Object Path
|
|
#>
|
|
|
|
param (
|
|
[Parameter(Mandatory = $true, Position = 0)]
|
|
[string]$SearchTerm,
|
|
|
|
[string]$Path = ".",
|
|
|
|
[string]$Filter = "*"
|
|
)
|
|
|
|
# Visual feedback for the user
|
|
Write-Host "Searching for: '$SearchTerm' (Case Sensitive) in '$Path'..." -ForegroundColor Cyan
|
|
|
|
try {
|
|
# Performing the search
|
|
# -List: Stop after first match in a file (performance optimization)
|
|
# -CaseSensitive: Matches exact casing only
|
|
# Note: Variable name changed to avoid conflict with automatic variable $matches
|
|
$searchResults = Get-ChildItem -Path $Path -Recurse -Filter $Filter -File -ErrorAction SilentlyContinue |
|
|
Select-String -Pattern $SearchTerm -CaseSensitive -List
|
|
|
|
if ($searchResults) {
|
|
Write-Host "`nFound matches in the following files:" -ForegroundColor Green
|
|
foreach ($item in $searchResults) {
|
|
Write-Host $item.Path
|
|
}
|
|
Write-Host "`nTotal files found: $($searchResults.Count)" -ForegroundColor Gray
|
|
} else {
|
|
Write-Host "`nNo files found containing '$SearchTerm'." -ForegroundColor Yellow
|
|
}
|
|
} catch {
|
|
Write-Error "An error occurred: $_"
|
|
}
|