I am using the sample script found here at WinSCP to upload files in a local directory to a directory on an SFTP server, then move the local file. The PowerShell script works, but only uploads one file to the SFTP directory at a time. I have to run the script multiple times to move all files. Not sure why that is. This is the script.
    param (
    $localPath = "c:\ebanking\PosPay\*.*" ,
    $RemotePath = "/incoming/arp/" ,
    $backupPath = "C:\eBanking\Z_Arch\PosPay"
)
try
{
    # Load WinSCP .NET assembly
    Add-Type -Path "WinSCPnet.dll"
 
    # Set up session options
    $sessionOptions = New-Object WinSCP.SessionOptions -Property @{
        Protocol = [WinSCP.Protocol]::Sftp
        HostName = "fdqn.computer.com"
        UserName = "xxxxxxx"
        Password = "xxxxxxxxxxx"
        SshHostKeyFingerprint = "ssh-rsa 1024 abcdefghijklmnopqrstuvwxyz"
    }
 
    $session = New-Object WinSCP.Session
 
    try
    {
        # Connect
        $session.Open($sessionOptions)
 
        # Upload files, collect results
        $transferResult = $session.PutFiles($localPath, $remotePath)
 
        # Iterate over every transfer
        foreach ($transfer in $transferResult.Transfers)
        {
            # Success or error?
            if ($transfer.Error -eq $Null)
            {
                Write-Output "Upload of $($transfer.FileName) succeeded, moving to backup" >> C:\eBanking\Z_Logs\BofAPP.log
                # Upload succeeded, move source file to backup
                Move-Item $transfer.FileName $backupPath
            }
            else
            {
                Write-Host "Upload of $($transfer.FileName) failed: $($transfer.Error.Message)"
            }
        }
    }
    finally
    {
        # Disconnect, clean up
        $session.Dispose()
    }
 
    exit 0
}
catch
{
    Write-Host "Error: $($_.Exception.Message)"
    exit 1
}
 
Any ideas why not all the files on local directory are not moved?