Good evening,
new member here.
I have a question;
My weather-camera is uploading every hour a new .jpg file to my FTP server. My directory is filling up with a lot of files. I want a script for Powershell to send the latest file to my local PC directory and the old files been deleted from the ftp server.
I found a script that is partially solving the problem.
It does NOT (yet):
- delete the files older then 2 hours ago.
- download the newest file.
What can I do? I do not find a solution.
Who can help me?
Here is the working script so far. Martin wrote it in 2016.Thanks in advance
# Load WinSCP .NET assembly
Add-Type -Path "C:\Program Files (x86)\WinSCP\WinSCPnet.dll"
# Setup session options
$sessionOptions = New-Object WinSCP.SessionOptions -Property @{
Protocol = [WinSCP.Protocol]::Ftp
HostName = "xxxxxx"
UserName = "xxxxxx"
Password = "xxxxxx"
}
try
{
# Connect
$session = New-Object WinSCP.Session
$session.Open($sessionOptions)
# List files
$remotePath = "/public_html/Weercam/FI9853EP_00626EA2E6A9/snap"
$directoryInfo = $session.ListDirectory($remotePath)
# Find old files
$limit = (Get-Date).AddDays(-1)
$oldFiles =
$directoryInfo.Files |
Where-Object { -Not $_.IsDirectory } |
Where-Object { $_.LastWriteTime -lt $limit }
# Delete them
foreach ($oldFileInfo in $oldFiles)
{
$oldFilePath =
[WinSCP.RemotePath]::EscapeFileMask($remotePath + "/" + $oldFileInfo.Name)
$session.RemoveFiles($oldFilePath).Check()
}
Write-Host "Done"
}
finally
{
# Disconnect, clean up
$session.Dispose()
}