使用这个命令,我可以在Unix中获得最新的更新文件夹
ls -t1 | head -1
但是我怎样才能从Windows中得到相同的FTP服务器?
我想在FTP服务器的特定path中获取最新更新文件夹的名称。 任何人都可以帮忙吗?
使用Windows shell命令没有简单的方法。
您可以:
ftp.exe
执行ls /path c:\local\path\listing.txt
将目录列表保存到文本文件。 ftp.exe
。 使用PowerShell脚本会更容易一些。
你可以使用FtpWebRequest
类 。 虽然它没有一个简单的方法来检索结构化的目录列表。 它只提供ListDirectoryDetails
和GetDateTimestamp
方法。
请参阅检索文件的创建日期(FTP) 。
或者使用第三方库进行任务。
例如,使用WinSCP .NET程序集,你可以这样做:
param ( $sessionUrl = "ftp://user:mypassword@example.com/", $remotePath = "/path" ) # Load WinSCP .NET assembly Add-Type -Path "WinSCPnet.dll" # Setup session options $sessionOptions = New-Object WinSCP.SessionOptions $sessionOptions.ParseUrl($sessionUrl) # Connect $session = New-Object WinSCP.Session $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" } else { Write-Host "The latest file is $latest" }
查看完整示例下载最新的文件 。
(我是WinSCP的作者)