param (
$localPath = "c:\lidar\downloaded\",
$remotePath = "/Lid/WIPO0100306/average_data/",
$remotePath2 = "/Nac/T10min/",
$remotePath3 = "/Tow/T10min/",
$fileName = "*"
)
try
{
# Load WinSCP .NET assembly
Add-Type -Path "C:\lidar\WinSCP-5.17.9-Automation\WinSCPnet.dll"
# Setup session options
$sessionOptions.AddRawSettings("ProxyMethod", "3")
$sessionOptions.AddRawSettings("ProxyHost", "proxy server ip")
$sessionOptions.AddRawSettings("ProxyPort", "8080")
$sessionOptions = New-Object WinSCP.SessionOptions -Property @{
Protocol = [WinSCP.Protocol]::ftp
HostName = "ftp server address"
UserName = "my-username"
Password = "my-password "
}
$session = New-Object WinSCP.Session
try
{
# Connect
$session.Open($sessionOptions)
# Get list of files in the directory
$directoryInfo = $session.ListDirectory($remotePath)
# Select the most recent file
$latest =
$directoryInfo.Files |
Where-Object { -Not $_.IsDirectory } |
Sort-Object LastWriteTime -Descending |
Select-Object -First 1
# Any file at all?
if ($latest -eq $Null)
{
Write-Host "No file found"
exit 1
}
# Download the selected file
$session.GetFiles(
[WinSCP.RemotePath]::EscapeFileMask($latest.FullName), $localPath).Check()
##------------------NEXT FILE PARH ----------------------------------##
# Get list of files in the directory
$directoryInfo = $session.ListDirectory($remotePath2)
# Select the most recent file
$latest =
$directoryInfo.Files |
Where-Object { -Not $_.IsDirectory } |
Sort-Object LastWriteTime -Descending |
Select-Object -First 1
# Any file at all?
if ($latest -eq $Null)
{
Write-Host "No file found"
exit 1
}
# Download the selected file
$session.GetFiles(
[WinSCP.RemotePath]::EscapeFileMask($latest.FullName), $localPath).Check()
##------------------NEXT FILE PARH ----------------------------------##
# Get list of files in the directory
$directoryInfo = $session.ListDirectory($remotePath3)
# Select the most recent file
$latest =
$directoryInfo.Files |
Where-Object { -Not $_.IsDirectory } |
Sort-Object LastWriteTime -Descending |
Select-Object -First 1
# Any file at all?
if ($latest -eq $Null)
{
Write-Host "No file found"
exit 1
}
# Download the selected file
$session.GetFiles(
[WinSCP.RemotePath]::EscapeFileMask($latest.FullName), $localPath).Check()
##------------------NEXT FILE PARH ----------------------------------##
}
finally
{
# Disconnect, clean up
$session.Dispose()
}
exit 0
}
catch
{
Write-Host "Error: $($_.Exception.Message)"
exit 1
}