Windows批处理文件 - 仅上传最新的文件到FTP

3

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

问题是文件名中包含时间戳(名称不固定)。因此,我需要始终只上传文件的最新版本(基于实际文件时间戳,而不是名称中的时间戳)。有没有办法实现这个目标?

运行在Windows Server 2003下。谢谢。

1个回答

5
要在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上传最新文件的文章。 < p> (我是WinSCP的作者)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接