我想要从Windows服务器自动传输文件到我的FTP。
问题是文件名中包含时间戳(名称不固定)。因此,我需要始终只上传文件的最新版本(基于实际文件时间戳,而不是名称中的时间戳)。有没有办法实现这个目标?
运行在Windows Server 2003下。谢谢。
我想要从Windows服务器自动传输文件到我的FTP。
问题是文件名中包含时间戳(名称不固定)。因此,我需要始终只上传文件的最新版本(基于实际文件时间戳,而不是名称中的时间戳)。有没有办法实现这个目标?
运行在Windows Server 2003下。谢谢。
@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"
-latest 开关)。
请参阅WinSCP上传最新文件的文章。
< p> (我是WinSCP的作者)