Windowsbatch file – 只上传最新的文件到FTP

我想做一个从Windows服务器到我的FTP自动文件传输。

问题是该文件的名称中生成时间戳(名称不固定)。 所以我只需要上传文件的最后一个版本(最新)。 有没有办法如何做到这一点?

在Windows Server 2003下运行。谢谢。

要选择Windows批处理文件中的最新文件,请参阅
如何编写Windows批处理脚本以从目录中复制最新的文件?

基于此,您可以创建一个上传批处理文件,如:

@echo off FOR /F %%I IN ('DIR C:\source\path\*.* /B /O:D') DO SET NEWEST_FILE=%%I echo Uploading %NEWEST_FILE% ( echo open ftp.example.com echo username echo password echo put C:\source\path\%NEWEST_FILE% /target/path/%NEWEST_FILE% echo bye ) > ftp.txt ftp.exe -s:ftp.txt 

为了更简单和更可靠的方法,使用一些更强大的第三方FTP客户端。

以WinSCP FTP客户端为例,可以使用put命令的-latest开关 。

示例批处理文件( .bat ):

 winscp.com /ini=nul /command ^ "open ftp://username:password@ftp.example.com/" ^ "put -latest C:\source\path\* /target/path/" ^ "exit" 

你甚至可以让WinSCP为你生成脚本/批处理文件 (你只需要手动添加-latest开关)。

请参阅上载最新文件的WinSCP文章 。

(我是WinSCP的作者)