Differences

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

library_example_recursive_search_text 2020-12-25 library_example_recursive_search_text 2025-04-10 (current)
Line 8: Line 8:
<code> <code>
-powershell.exe -File SearchText.ps1 -sessionUrl "sftp://username:password@example.com/" -path "/path" -text "text"+powershell.exe -File SearchText.ps1 -sessionUrl "sftp://username:password;fingerprint=ssh-rsa-xxxxxxxxxxx...@example.com/" -path "/path" -text "text"
</code> </code>
Line 21: Line 21:
#                  -pause -sessionLogPath "%SessionLogPath%" #                  -pause -sessionLogPath "%SessionLogPath%"
# @description  Searches recursively for a text in the current remote directory # @description  Searches recursively for a text in the current remote directory
-# @version      7+# @version      8
# @homepage    ~~SELF~~ # @homepage    ~~SELF~~
# @require      WinSCP 5.16 # @require      WinSCP 5.16
Line 31: Line 31:
param ( param (
    # Use Generate Session URL function to obtain a value for -sessionUrl parameter.     # Use Generate Session URL function to obtain a value for -sessionUrl parameter.
-    $sessionUrl = "sftp://user:mypassword;fingerprint=ssh-rsa-xxxxxxxxxxx...=@example.com/",+    $sessionUrl = "sftp://user:mypassword;fingerprint=ssh-rsa-xxxxxxxxxxx...@example.com/",
    [Parameter(Mandatory = $True)]     [Parameter(Mandatory = $True)]
    $path,     $path,
Line 78: Line 78:
            # matching files, instead of grepping their contents             # matching files, instead of grepping their contents
-            Write-Host "File $($fileInfo.FullName) matches mask, searching contents..." +            if ($fileInfo.FileType -eq &quot;L")
-            $tempPath = (Join-Path $env:temp $fileInfo.Name) +
-            # Download file to temporary directory +
-            $filePath = [WinSCP.RemotePath]::EscapeFileMask($fileInfo.FullName) +
-            $transferResult = $session.GetFiles($filePath, $tempPath) +
-            # Did the download succeeded? +
-            if (!$transferResult.IsSuccess)+
            {             {
-                # Print error (but continue with other files) +                Write-Host &quot;Skipping symlink $($fileInfo.FullName)..."
- ···············Write-Host $transferResult.Failures[0].Message+
            }             }
            else             else
            {             {
-                # Search and print lines containing &quot;text". +                Write-Host "File $($fileInfo.FullName) matches mask, searching contents...
-                # Use -Pattern instead of -SimpleMatch for regex search +                $tempPath = (Join-Path $env:temp $fileInfo.Name) 
-                $matchInfo = Select-String -Path $tempPath -SimpleMatch $text + ···············# Download file to temporary directory 
-                # Print the results +                $filePath = [WinSCP.RemotePath]::EscapeFileMask($fileInfo.FullName) 
-                foreach ($match in $matchInfo)+ ···············$transferResult = $session.GetFiles($filePath, $tempPath) 
 +                # Did the download succeeded? 
 +                if (!$transferResult.IsSuccess)
                {                 {
-                    Write-Host ($fileInfo.FullName + ":" + $match.LineNumber + ":&quot; + $match.Line)+                    # Print error (but continue with other files) 
 +····················Write-Host $transferResult.Failures[0].Message 
 +               } 
 +                else 
 +                { 
 +                    # Search and print lines containing "text"
 +                   # Use -Pattern instead of -SimpleMatch for regex search 
 +                    $matchInfo = Select-String -Path $tempPath -SimpleMatch $text 
 +                    # Print the results 
 +                    foreach ($match in $matchInfo
 +                   { 
 +                        Write-Host "$($fileInfo.FullName):$($match.LineNumber):$($match.Line)
 +                    } 
 +                    # Delete temporary local copy 
 +                    Remove-Item $tempPath
                }                 }
-                # Delete temporary local copy 
-                Remove-Item $tempPath 
            }             }
        }         }

Last modified: by martin