[英]Copy files from FTP server to local directory?
我想在Windows Server中创建一个批处理文件,包括以下功能:
到目前为止,我还没有对批处理文件做过那么多,所以如果你能帮助我就太好了。 我知道有ftp
命令,我知道如何连接( ftp open
),但不幸的是我不知道如何每 15 分钟从那里复制这些文件。
非常感谢你的帮助!
要从批处理文件编程 ftp,请参阅http://support.microsoft.com/kb/96269 。 你需要像这样调用ftp
ftp -i -s:ftpcommands.txt
其中 ftpcommands.txt 看起来像这样:
open ftp.myftpsite.com
username
password
bin
cd out
mget *
del *
bye
要每 15 分钟运行一次,请参阅其他回复( at
或 Command Scheduler)。
( -i
参数是关闭交互式提示- 另一种方法是在mget
之前的命令文本文件中添加一个prompt off
命令。没有这个, mget
将停止并在获取每个文件之前要求您确认。 [感谢阿德里亚诺指出这一点!])
@AAT 接受的答案建议使用 Windows 内置的ftp.exe
命令行客户端。 虽然这可以工作,但更多时候它不会,因为这个客户端只支持 FTP 活动模式,不能很好地与当今无处不在的防火墙和 NAT 配合使用。 它也不支持加密的 FTPS(FTP over TLS/SSL)。
如果您有上述问题,则需要使用第 3 方 FTP 客户端。 它们中的大多数确实支持被动模式和加密。
例如,对于WinSCP FTP 客户端,您可以使用以下批处理文件 ( .bat
):
WinSCP.com /command ^
"open ftp://username:password@ftp.example.com/" ^
"get /out/* c:\local\path\" ^
"exit"
如果您已经有一个ftp.exe
脚本,有一个将其转换为 WinSCP 脚本的指南。
对于调度部分,请参阅调度传输到 FTP 服务器的指南。
(我是 WinSCP 的作者)
仅使用一 (1) 个 .bat 文件脚本。 在临时文件中创建 FTP 脚本,运行它,然后删除临时文件。
SET "FTPFILE=%TEMP%\myftpscript_%RANDOM%.txt"
ECHO>>"%FTPFILE%" open ftp.myftpsite.com
ECHO>>"%FTPFILE%" username
ECHO>>"%FTPFILE%" password
ECHO>>"%FTPFILE%" bin
ECHO>>"%FTPFILE%" cd out
ECHO>>"%FTPFILE%" mget *
ECHO>>"%FTPFILE%" del *
ECHO>>"%FTPFILE%" bye
ftp -i -s:"%FTPFILE%"
IF EXIST "%FTPFILE%" (DEL "%FTPFILE%")
EXIT /B 0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.