Differences

This shows you the differences between the selected revisions of the page.

2014-12-01 2014-12-01
removing session log (martin) parameterized script + custom command suggestion + better output printing (martin)
Line 2: Line 2:
If you do not have your favorite language, use [[library_powershell|PowerShell]]. If you do not have your favorite language, use [[library_powershell|PowerShell]].
 +
 +You can run the script (e.g. ''search.ps1'') from WinSCP GUI using [[custom_command|local custom command]]:
 +
 +<code>
 +powershell.exe -File search.ps1 -path "!/" -text !?Text:?!
 +</code>
See also [[library_example_listing_files_matching_wildcard|Listing files matching wildcard]]. See also [[library_example_listing_files_matching_wildcard|Listing files matching wildcard]].
<code powershell> <code powershell>
 +param (
 +    [Parameter(Mandatory)]
 +    $path,
 +    [Parameter(Mandatory)]
 +    $text
 +    $wildcard = "*.*",
 +)
 +
function SearchDirectory ($session, $path, $wildcard, $text) function SearchDirectory ($session, $path, $wildcard, $text)
{ {
Line 45: Line 59:
                    # Search and print lines containing "text".                     # Search and print lines containing "text".
                    # Use -Pattern instead of -SimpleMatch for regex search                     # Use -Pattern instead of -SimpleMatch for regex search
-                    Select-String -Path $tempPath -SimpleMatch $text+                    $matchInfo = Select-String -Path $tempPath -SimpleMatch $text 
 +                    # Print the results 
 +                    foreach ($match in $matchInfo) 
 +                    { 
 +                        Write-Host ($filePath + ":" + $match.LineNumber + ":" + $match.Line) 
 +                    }
                    # Delete temporary local copy                     # Delete temporary local copy
                    Remove-Item $tempPath                     Remove-Item $tempPath
Line 73: Line 92:
        # Connect         # Connect
        $session.Open($sessionOptions)         $session.Open($sessionOptions)
-         
-        $remotePath = "/home/user" 
-        $wildcard = "*.txt" 
-        $text = "blah" 
               
        # Start recursive search         # Start recursive search
-        SearchDirectory $session $remotePath $wildcard $text +        SearchDirectory $session $path $wildcard $text
-·+
    }     }
    finally     finally

Last modified: by martin