每一台 Windows 電腦都內建了命令列 FTP 用戶端。它從 1990 年代就存在了:開啟命令提示字元或 PowerShell,輸入 ftp,就進去了。不必安裝、不需要系統管理員權限、沒有東西要下載,正因如此,想在一台不歸你管的電腦上從 FTP 伺服器抓一個檔案,或是在建置主機上寫個簡單的傳輸腳本,它依然是最快的方法。
這份指南會帶你走過一次完整的 ftp.exe 工作階段:連線、傳輸、寫腳本,並老實告訴你這個工具在什麼時候就不再是正確的選擇。如果你只是想要完整的指令清單,FTP 指令參考涵蓋了所有用戶端與協定指令,並附有語法與範例。
步驟 1:連線到伺服器
直接傳入主機名稱來開始一個工作階段,或是先啟動用戶端,再使用 open:
C:\> ftp ftp.example.com
ftp> open ftp.example.com
伺服器會以一段歡迎訊息回應,並要求輸入帳密。輸入使用者名稱,按下 Enter,接著輸入密碼(輸入時不會顯示)。在允許匿名登入的伺服器上,使用者名稱輸入 anonymous、密碼隨便填一個電子郵件,就能讀取公開的檔案。
步驟 2:四處看看
四個指令就能搞定瀏覽。dir 列出目前的遠端目錄,cd 切換目錄,pwd 顯示你目前所在的位置,而大家總是忘記的 lcd,則會切換下載檔案存放、上傳檔案來源的本機資料夾:
ftp> dir
ftp> cd /public_html
ftp> lcd C:\Users\vlad\Downloads
Local directory now C:\Users\vlad\Downloads.
步驟 3:切換到二進位模式
在傳輸任何不是純文字的東西之前,先輸入 binary。在預設的 ASCII 模式下,ftp.exe 會在傳輸時改寫換行字元:對 .txt 檔案無害,但會損壞 zip、圖片、執行檔以及任何其他二進位檔案。這一個指令,就能避免經典的「檔案下載了卻打不開」問題:
ftp> binary
200 Type set to I.
步驟 4:下載與上傳
get 下載一個檔案,put 上傳一個檔案。它們的多檔版本 mget 與 mput 接受萬用字元,而 prompt 可以關閉每個檔案的「y/n」確認,讓萬用字元不需要人盯著就能跑完。hash 會每傳輸一個區塊就印出一個 #,讓長時間的傳輸也能看到進度:
ftp> hash
ftp> get backup.zip
ftp> put report.pdf
ftp> prompt
Interactive mode Off.
ftp> mget *.log
步驟 5:結束工作階段
bye(或 quit)會關閉連線並離開。一次完整的工作階段看起來像這樣:
C:\> ftp ftp.example.com
User: alice
Password: ********
ftp> binary
ftp> cd /backups
ftp> lcd C:\Backups
ftp> get site-backup.zip
226 Transfer complete.
ftp> bye
用 -s: 寫成腳本執行傳輸
ftp.exe 可以執行腳本,而不是互動式的工作階段。把指令寫進一個文字檔(前兩行是使用者名稱與密碼),再用 -s: 傳入。當你在腳本中用 user 自己處理登入時,-n 旗標可以關閉自動的登入提示:
# upload.txt
alice
secretpassword
binary
cd /public_html
lcd C:\Site\dist
prompt
mput *.html
bye
C:\> ftp -s:upload.txt ftp.example.com
搭配工作排程器,就能執行週期性的工作;但請注意你剛剛做了什麼:把密碼存在一個純文字檔裡,而這個協定還會把密碼以未加密的方式送過網路。在區域網路上搭配一個用完即丟的帳號還無妨;但對任何重要的東西就不行了。
ftp.exe 在什麼時候就不再是正確的工具
這個內建的用戶端確實有用,但它也是一個有 30 年歷史、有著硬性限制的設計,在你和它奮戰之前,這些限制值得先了解:
- 沒有被動模式。ftp.exe 只支援主動模式的傳輸,也就是由伺服器反向開一條連線回你的電腦。現代的路由器與防火牆會擋下這種連線,這就是為什麼工作階段能順利登入,卻在
dir或get時永遠卡住。沒有任何旗標能解決這個問題,因為它根本沒有實作被動模式。 - 完全沒有加密。SFTP 與 FTPS 都不支援。帳密與檔案內容都以明文傳送。
- 不能續傳,也不能遞迴。一個中斷的 2 GB 下載會從零開始重來,而且沒有辦法用一個指令傳輸整個資料夾樹。
如果要用 SFTP,Windows 10 與 11 內建了 OpenSSH 的 sftp 指令,它是現代、可寫成腳本的選擇;它的指令集相似但並不相同,SFTP 指令參考記錄了所有指令。
什麼時候圖形介面就是比較快
命令列 FTP 在快速抓一次檔案與簡單的腳本上物有所值。一旦你得在兩邊同時處理目錄、重試失敗的傳輸,或搬移整個資料夾樹,圖形化的用戶端就會在時間上勝出。FTPie 是一款免費的 Windows FTP 用戶端,被動模式能正常運作,還在同一個視窗裡整合了 SFTP、FTPS、WebDAV 與 10 多種雲端服務:拖放取代了 mput,傳輸會自己續傳,而免費方案支援最多 3 個伺服器連線。
如果你喜歡寫腳本的部分,FTPie Pro 包含一套真正的 CLI,支援 SFTP/FTPS/雲端,並附圖形化的命令產生器,還有排程傳輸,能完全取代「腳本加工作排程器」的那一套,也不必把密碼寫在文字檔裡。
把 FTP 指令參考加入書籤,隨時查閱完整的指令清單:用戶端指令,以及它們所對應的原始協定指令。
開始你的 30 天免費試用
下載 FTPie,開始 30 天免費試用。享受 FTP 與雲端的無縫整合,試用結束後仍可繼續使用免費版。
下載免費試用版