searching for string different results

Tagged: 

This topic contains 1 reply, has 1 voice, and was last updated by Profile photo of Tony Antony Tony Antony 2 months, 2 weeks ago.

  • Author
    Posts
  • #65958
    Profile photo of Tony Antony
    Tony Antony
    Participant

    Hello,

    I have a function called Search to search for a string in files in a folder. If it found a file without the string it moves it to another folder.

    So the Function in line 26 works. If found one file not containing text and moved it to the appropriate folder

    The issue with function starting in 35, it think none of the files contain that word $Lookup, so it moved all files into the folder. Is the string too long?

    $Choice = $null
    
    Function Search($Folder, $CopyTo, $Pattern, $Lookup){
        Remove-Item $CopyTo\*
        $Read = Get-ChildItem $Folder | Where-Object {$_.FullName -match "$Pattern"}    
        $Found = 0
        $NotFound = 0
        $FileCount = 0
        foreach($Files in $Read){    
            $FileCount++    
            $ReadFile = Get-Content ($Files.FullName)   
            if($ReadFile -ccontains $Lookup){                   
                $Found++      
            }
    
            else{                      
                $NotFound++        
                Copy-Item ($Files.FullName) -Destination $CopyTo
            }
        }
        Write-Host "There are" $FileCount "text files matching $Pattern!"
        Write-Host "Found" $Found "files matching text!"
        Write-Host "Copied" $NotFound "files to $CopyTo`n" -ForegroundColor Red
    }
    
    Function BackupRouterConfigs(){
        $RouterFolder = "\\hqfs1\Shares\HQShared\IT\NetworkBackups\BackupRouterConfigs"
        $RouterCopyTo = "\\hqfs1\Shares\HQShared\IT\NetworkBackups\RouterSearchResults"
        $Pattern = "Current.Running.MR"
        $Lookup = "event manager environment _email_server 000.00.00.000"
    
        Search $RouterFolder $RouterCopyTo $Pattern $Lookup
    }
    
    Function BranchSwitchBackups(){    
        $SwitchFolder = "\\hqfs1\Shares\HQShared\IT\NetworkBackups\BranchSwitchBackups"
        $SwitchCopyTo = "\\hqfs1\Shares\HQShared\IT\NetworkBackups\SwitchSearchResults"
        $Pattern = "Current.Running"    
        $Lookup = "69643a697070686f6e652e6d6974656c2e636f6d3b73775f746674703d31302e36302e3130312e343b63616c6c5f7372763d31302e36302e3"
    
        Search $SwitchFolder $SwitchCopyTo $Pattern $Lookup
    }
    
    Write-Host "Make a selection and press enter to continue!" -ForegroundColor Green
    Write-Host "---------------------------------------------`n" -ForegroundColor Cyan
    
    While($Choice -ne 0)
    {
        Write-Host "[1]`tSearch BackupRouterConfigs folder" -ForegroundColor Green
        Write-Host "[2]`tSearch BranchSwitchBackups folder" -ForegroundColor Green
        Write-Host "[0]`tQuit program" -ForegroundColor Green
        $Choice = Read-Host "`tSelection: "
        Write-Host "`n"
    
        switch($Choice)
        {
            1 {BackupRouterConfigs}      
            2 {BranchSwitchBackups}      
        }
    }

    Thanks,

    Tony

  • #65959
    Profile photo of Tony Antony
    Tony Antony
    Participant

    Found the solution by adding select-string.

    Thanks,

    Tony

You must be logged in to reply to this topic.