我想做一个从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的作者)