Hi,
Maybe you can try this :
$session = New-Object WinSCP.Session
try
{
# Connect
$session.Open($sessionOptions)
# Download files
$transferOptions = New-Object WinSCP.TransferOptions
$transferOptions.TransferMode = [WinSCP.TransferMode]::Binary
$transferResult =
$session.GetFiles("/home/user/*", "d:\download\*", $False, $transferOptions)
# Throw on any error
$transferResult.Check()
#skip if file already download(Add download path at xxxxxxxx)
if (Test-Path(xxxxxxxxxxxxxxxxxxx) )
{
Write-Host 'Skipping file, already downloaded' -ForegroundColor Yellow
return
}
# Print results
foreach ($transfer in $transferResult.Transfers)
{
Write-Host "Download of $($transfer.FileName) succeeded"
}
}
finally
{
# Disconnect, clean up
$session.Dispose()
}
exit 0
}
catch [Exception]
{
Write-Host "Error: $($_.Exception.Message)"
exit 1
}
You can get more information by visiting the following link:
https://winscp.net/eng/docs/library_session_getfiles#powershell
https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/test-path?view=powershell-7
Best wishes,
Young Yang
Please remember to mark the replies as answers if they help.
If you have feedback for TechNet Subscriber Support, contact
tnmff@microsoft.com.