[英]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.