Windows批处理文件 - 仅将最新文件上载到FTP

时间:2016-10-11 06:30:54

标签: windows batch-file ftp

我想从Windows服务器到我的FTP进行自动文件传输。

问题是文件名称中是否生成了时间戳(名称不固定)。所以我需要始终只上传文件的最新版本(最新版本)。有什么方法可以做到吗?

在Windows Server 2003下运行。谢谢。

1 个答案:

答案 0 :(得分:4)

要选择Windows批处理文件中的最新文件,请参阅
How do I write a Windows batch script to copy the newest file from a directory?

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

@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 client,您可以使用-latest switchput command

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

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

您甚至可以WinSCP generate the script/batch file for you(您只需手动添加-latest开关。)

请参阅WinSCP article on Uploading the most recent file

(我是WinSCP的作者)