Загрузите самый последний файл с FTP с помощью PowerShell
Я работаю над сценарием PowerShell, который будет извлекать файлы с FTP-сайта. Файлы загружаются на FTP-сайт каждый час, поэтому мне нужно загрузить самый последний. Код, который у меня сейчас есть, загружает все файлы с сегодняшнего дня, а не только один файл. Как мне сделать так, чтобы он загружал только самый последний файл?
Вот код, который я сейчас использую
$ftpPath = 'ftp://***.***.*.*'
$ftpUser = '******'
$ftpPass = '******'
$localPath = 'C:\Temp'
$Date = get-date -Format "ddMMyyyy"
$Files = 'File1', 'File2'
function Get-FtpDir ($url, $credentials)
{
$request = [Net.FtpWebRequest]::Create($url)
if ($credentials) { $request.Credentials = $credentials }
$request.Method = [System.Net.WebRequestMethods+FTP]::ListDirectory
(New-Object IO.StreamReader $request.GetResponse().GetResponseStream()) -split "`r`n"
}
$webclient = New-Object System.Net.WebClient
$webclient.Credentials = New-Object System.Net.NetworkCredential($ftpUser,$ftpPass)
$webclient.BaseAddress = $ftpPath
Foreach ( $item in $Files )
{
Get-FTPDir $ftpPath $webclient.Credentials |
? { $_ -Like $item+$Date+'*' } |
% {
$webClient.DownloadFile($_, (Join-Path $localPath $_))
}
}