@echo off set server=IP set username=Ftp帳號 set password=Ftp密碼 ::取得當日時間 set YYYYMMDD=%date:~0,4%%date:~5,2%%date:~8,2% ::檔案格式 set File=%YYYYMMDD%*_file* set n=!!! set i=! :Filestart echo open %server%>>ftp%i%.txt echo user %username%>>ftp%i%.txt echo %password%>>ftp%i%.txt echo hash>>ftp%i%.txt echo cd 路徑>>ftp%i%.txt echo mget %File%>>ftp%i%.txt echo y>>ftp%i%.txt echo bye>>ftp%i%.txt ::確認是否成功下載,若無,則重新下載 ftp -s:ftp%i%.txt -n>>filerunresult%YYYYMMDD%.txt if exist *_file* ( goto ok ) else ( ::暫停一分鐘後下載 timeout 60 ::若無成功下載,重覆三次 set i=%i%! if %i%==%n% goto ok goto Filestart ) :ok del ftp.txt goto exit :exit exit
從事 MIS 的工作,就是要會用些小程式或簡單指令來簡化例行公事,列一下 FTP Client 在 Windows Command Line 模式下的自動化語法:
ftp -s:ACTION
ACTION 內容:
open 192.168.0.21 ← 連線到 FTP Server
ftpusr ← 帳號
user4ftp ← 密碼,明碼有安全疑慮
bi ← 切換成 binary 模式
prompt off ← 將提示關閉
lcd d:\pdaexe ← 切換本機端的目錄夾
cd pdadata ← 切換 FTP Server 上的目錄夾
mput *.exe ← 多檔案下載
quit ← 離開
相關參數(來自 Windows 內建說明檔):
-v
抑制顯示遠端伺服器的回應。
-n
抑制在初始連線時自動登入。
-i
關閉多檔案傳送期間的互動提示。
-d
啟用偵錯,以顯示用戶端與伺服器之間所傳遞的所有 ftp 指令。
-g
啟用檔案名稱通用慣例,以在本機檔案及路徑名稱中使用萬用字元 (* 與 ?) (請參閱線上 [指令參照] 中的 glob 指令)。
-s:filename
指定內含 ftp 指令的文字檔;此指令會在 ftp 啟動之後自動執行。此參數不可含有空格。請改以此參數取代重新導向 (>)。
-a
於連結資料連線時使用本機的介面。
-w:windowsize
覆寫預設的轉送緩衝區大小 4096。
computer
指定電腦名稱或要連線之遠端電腦的 IP 位址。指定此參數時,請務必將其置於行中的最後一個參數。