如何在一個命令列中從 FTP 網站下載檔案而無需使用者互動 (Windows)

如何在一個命令列中從 FTP 網站下載檔案而無需使用者互動 (Windows)

我知道有一個 FTP 命令可以在 Windows 上從命令列運行,它可以從 FTP 網站下載檔案。使用者+密碼在「that」一行cmd中指定。這些選項+密碼通道應該位於該命令列上。

echo open 192.168.1.64 21> ftp.txt
echo anonymous>> ftp.txt
echo [email protected]>> ftp.txt
echo bin >> ftp.txt
echo get test.txt >> ftp.txt
echo bye >> ftp.txt

ftp -s:ftp.txt

答案1

嘗試這個:批次檔 - 無人值守的 FTP 下載

WGET ftp://ftp.mydomain.com/path/file.ext  

用於匿名下載

或者:

WGET ftp://user:[email protected]/path/file.ext  

當需要身份驗證時。


正如 @XavierStuvw 透過編輯和評論指出的那樣,交換WGET到小寫wget可以在 Linux 中工作。

wget ftp://user:[email protected]/path/file.ext

答案2

我找到方法了:

echo open 192.168.0.1 >> ftp &echo user admin w00t >> ftp &echo binary >> ftp &echo get file.zip >> ftp &echo bye >> ftp &ftp -n -v -s:ftp &del ftp

答案3

請注意,您可以使用 /? 詢問 DOS 中指令的語法。轉變。例如:

C:\>ftp /?

與運行 FTP 伺服器服務的電腦傳輸文件
(有時稱為守護程式)。 FTP可以互動使用。

FTP [-v] [-d] [-i] [-n] [-g] [-s:檔名] [-a] [-A] [-x:sendbuffer] [-r:recvbuf
fer] [-b:asyncbuffers] [-w:windowsize] [主機]

  -v 禁止顯示遠端伺服器回應。
  -n 禁止初始連線時自動登入。
  -i 在多個文件期間關閉互動式提示
                  轉移。
  -d 啟用調試。
  -g 停用檔案名稱通配(請參閱 GLOB 指令)。
  -s:filename 指定包含FTP指令的文字檔;這
                  命令將在 FTP 啟動後自動運行。
  -a 綁定資料連線時使用任何本機介面。
  - 以匿名登入。
  -x:send sockbuf 覆蓋預設的 SO_SNDBUF 大小 8192。
  -r:recv sockbuf 覆蓋預設的 SO_RCVBUF 大小 8192。
  -b:async count 覆蓋預設的非同步計數 3
  -w:windowsize 覆蓋預設傳輸緩衝區大小 65535。
  host 指定遠端主機的主機名稱或IP位址
                  要連接的主機。

筆記:
  - mget 和 mput 指令採用 y/n/q 表示是/否/退出。
  - 使用 Control-C 中止指令。

在您的情況下,您需要使用 -s 開關為其提供腳本,包括登入回應。

例如:

  1. 建立一個包含以下內容的腳本檔案 (c:\scriptfile.txt):

    open
    servername_or_ip
    username
    password
    get
    /fullpath/thefile.txt
    c:\fullpath\thefile.txt
    quit
    
  2. 使用 -s 開關執行 ftp 並指定腳本檔名

    C:\>ftp -s:c:\scriptfile.txt
    

答案4

嘗試一下curl,它功能強大且開箱即用(win10)。

curl --user ftpusername:ftpuserpass -o outputdirname\test.txt  ftp://host/test.txt

相關內容