我想从Windows服务器到我的FTP进行自动文件传输。
问题是文件名称中是否生成了时间戳(名称不固定)。所以我需要始终只上传文件的最新版本(最新版本)。有什么方法可以做到吗?
在Windows Server 2003下运行。谢谢。
答案 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
switch的put
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的作者)