Post a reply

Options
Add an Attachment

If you do not want to add an Attachment to your Post, please leave the Fields blank.

(maximum 10 MB; please compress large files; only common media, archive, text and programming file formats are allowed)

Options

Topic review

unimog

powershell session.FileExists($remotePath) foreach

So I've tested the generic code of $session.FileExists($remotePath) which works great but as soon as I put the statement within a foreach loop it keeps telling me file doesn't exists. Anyone have experience or a solution to the problem I'm having?

try

{
    # Load WinSCP .NET assembly
    Add-Type -Path "C:\winscp\WinSCPnet.dll"
 
    # Setup session options
    $sessionOptions = New-Object WinSCP.SessionOptions
    $sessionOptions.Protocol = [WinSCP.Protocol]::Sftp
    $sessionOptions.HostName = "server01"
    $sessionOptions.UserName = "user"
    $sessionOptions.Password = "user1"
    $sessionOptions.SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"

 
    $session = New-Object WinSCP.Session
 
    try
    {
        # Connect
        $session.Open($sessionOptions)
        $programFileNameList = Get-Content D:\program\programFileName.lst

        #Program List Error Check
        foreach( $programFileName in $programFileNameList )
        {
           
            Write-Host ("name: $programFileName")
            $remotePath = "/home/user/utility/Program/$programFileName"
            #$remotePath = "/home/user/utility/Program/program2.csv"
            Write-Host ("searching: $remotePath")
            if($session.FileExists($remotePath))
            {
                Write-Host ("File {0} exists" -f $remotePath)
            }

            else
            {
                Write-Host ("File {0} does not exist" -f $remotePath)
            }
        }
       

             
    }
    finally
    {
        # Disconnect, clean up
        $session.Dispose()
    }
 
    exit 0
}
catch [Exception]
{
    Write-Host $_.Exception.Message
    exit 1
}