簡體   English   中英

將文件從 FTP 服務器復制到本地目錄?

[英]Copy files from FTP server to local directory?

我想在Windows Server中創建一個批處理文件,包括以下功能:

  • 連接到 FTP 服務器
  • 將文件從那里(稱為“out”的目錄)復制到本地目錄
  • 如果成功,則從 FTP 服務器中刪除文件
  • 每 15 分鍾重復這些步驟

到目前為止,我還沒有對批處理文件做過那么多,所以如果你能幫助我就太好了。 我知道有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

Windows 具有at實用程序以及 Windows任務調度程序 任何一個都可以以指定的時間間隔運行您的程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM