濮阳杆衣贸易有限公司

主頁 > 知識庫 > 使用FTP下載目錄,即FTP命令批量自動下載的bat文件

使用FTP下載目錄,即FTP命令批量自動下載的bat文件

熱門標簽:五華銷售外呼管理系統(tǒng)電話 汕頭外呼crm系統(tǒng) 聯(lián)通400電話去哪里申請啊 軟通動力地圖標注專員 湖州手機外呼系統(tǒng) 百度地圖標注地址有什么影響 DOTA地圖標注app 徐州客服外呼系統(tǒng)排名 綿陽外呼線路
FTP不支持目錄的下載,不過FTP命令提供了mget命令,允許多文件下載,但每下載一個文件都需要確認,不能自動完成。本文主要介紹使用批處理,結合FTP的相關命令來實現(xiàn)批量文件的下載,以便達到目錄下載的目的。

  大致想法如下:

ftp -s:filename hosts >result.txt 執(zhí)行腳本,并將結果定向輸出到result.txt
腳本內(nèi)容,如
cd mydir
ls
bye
可以將mydir命令列出
然后使用批處理分析result
.txt
從150 Opening ASCII 
mode data connection for file list.的下一行開始算,直到226 Transfer complete都是要下載的內(nèi)容
然后用批處理加ftp腳本,使用get命令逐個下載

  但實際過程中發(fā)現(xiàn),在FTP腳本中使用get有問題,提示參數(shù)錯誤,無法使用。

  查看了ftp的幫助ftp -?

G:>ftp -?

Transfers 
files to and from a computer running an FTP server service
(sometimes called a daemon). Ftp can be used interactively.

FTP [-v] [-d] [-i] [-n] [-g] [-s
:filename] [-a] [-w:windowsize] [-A] [host]

  -v             Suppresses display of remote server responses
.
  -n             Suppresses auto-login upon initial connection
.
  -i             Turns 
off interactive prompting during multiple file
                 transfers
.
  -d             Enables debugging
.
  -g             Disables filename globbing 
(see GLOB command).
  -s
:filename    Specifies a text file containing FTP commands; the
                 commands will automatically 
run after FTP starts.
  -a             
Use any local interface when binding data connection.
  -A             login as anonymous
.
  -w
:buffersize  Overrides the default transfer buffer size of 4096.
  host           Specifies the host name or IP address of the remote
                 host to connect to
.

Notes:
  - mget and mput commands take y
/n/for yes/no/quit.
  - 
Use Control-C to abort commands.

發(fā)現(xiàn) -i 參數(shù)可以去除mget的提示,經(jīng)過測試,實現(xiàn)了如下腳本(使用了匿名登入,如果非匿名,可以修改登入腳本):

echo cd autoruns>ftp.txt
echo mget *>>ftp.txt
echo bye>>ftp.txt
ftp -i -A -s
:ftp.txt 10.1.103.10

   不過,這只是下載了目錄中的文件,如果有子目錄,那還需要用dir命令輸出,并轉向輸出到文本,用find來提取目錄,如:

echo cd autoruns>ftp.txt
echo dir>>ftp.txt
echo bye>>ftp.txt
ftp -A -s
:ftp.txt 10.1.103.10 |find "DIR>">result.txt
for /"tokens=2,3*" %%i in (result.txt) do echo %%k

  如有子文件夾,那就要深入編寫了。

  經(jīng)過編寫測試,實現(xiàn)如下腳本,運行環(huán)境WINXP SP2,運行通過,未載其它系統(tǒng)上測試過:

1、主要腳本ftpget.bat,更改前4個變量的相關信息,該腳本調(diào)用makeTree.bat,請參見2

rem FTP服務器地址
set host=10.1.103.10

rem FTP登入名,如果匿名不用改
set user=anonymous

rem FTP登入密碼,如果匿名不用改
set pass=123456

rem 需要下載的FTP目錄,如果下載子目錄以分格
set dirname=目錄1子目錄

set homedir=%cd%

rem 生成FTP目錄結構
del tree.txt
start /cmd /c makeTree %dirname% 0
del result*.txt

for /"delims=/" %%i in (tree.txt) do (

rem 獲取dirname的所有文件
rem
 =============================
cd %homedir%
md %%i
cd /d %%i
echo %user%>ftp.txt
echo %pass%>>ftp.txt
echo cd %%i>>ftp.txt

rem mget *.* 下載所有文件,但不能下載無擴展名的文件;
rem
 如果使用mget * 可以下載所有文件,但會把子目錄的文件也下載過來
echo mget *.*>>ftp.txt

echo bye>>ftp.txt
ftp -i -A -s
:ftp.txt %host%
del ftp.txt
rem ==============================

)
cd %homedir%
del tree.txt

2、maketree.bat,生成FTP目錄樹

rem 生成FTP目錄結構
rem
 調(diào)用方法 maketree dir1dir2 n (n>=1)
rem
 %1 == dir1dir2
rem
 %2 == n

set /a treetime=%2+1
echo %1 >>tree.txt

echo %user% >ftp%treetime%.txt
echo %pass% >>ftp%treetime%.txt
echo cd %1 >>ftp%treetime%.txt
echo dir >>ftp%treetime%.txt
echo bye >>ftp%treetime%.txt
ftp -A -s
:ftp%treetime%.txt %host% |find "DIR>">result%treetime%.txt
for /"tokens=2,3*" %%i in (result%treetime%.txt) do (start /cmd /c Maketree.bat %1%%k %treetime%)
del result%treetime%.txt
del ftp%treetime%.txt

 

  雖然已經(jīng)實現(xiàn),但仍然有小問題,就是mget *.* 不能下載無擴展名的程序;如果使用mget * 可以下載所有文件,但會把子目錄的文件也下載過來。get在FTP腳本中出錯也不知為何。

相關信息參考: 使用FTP 批處理腳本,Ftp 子命令

您可能感興趣的文章:
  • 實現(xiàn)自動上傳文件到ftp服務器的BAT腳本分享
  • 批處理bat下載FTP服務器上某個目錄下的文件
  • 批處理bat下載FTP服務器上指定天數(shù)之前的文件
  • 備份文件并上傳至FTP服務器的bat代碼
  • linux和windows下的自動ftp腳本(shell bat)
  • Bat腳本處理ftp超強案例分析
  • windows下定時利用bat腳本實現(xiàn)ftp上傳下載

標簽:濟南 邯鄲 棗莊 內(nèi)江 廣東 清遠 新余 克拉瑪依

巨人網(wǎng)絡通訊聲明:本文標題《使用FTP下載目錄,即FTP命令批量自動下載的bat文件》,本文關鍵詞  使用,FTP,下載,目錄,即,命令,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《使用FTP下載目錄,即FTP命令批量自動下載的bat文件》相關的同類信息!
  • 本頁收集關于使用FTP下載目錄,即FTP命令批量自動下載的bat文件的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    长沙县| 玛沁县| 九江市| 奉化市| 上高县| 定安县| 集安市| 青河县| 荔浦县| 金乡县| 邯郸县| 阳春市| 海淀区| 河池市| 平凉市| 盘山县| 临高县| 芜湖县| 石台县| 廉江市| 册亨县| 通海县| 西乌| 陈巴尔虎旗| 福清市| 昌邑市| 蒙阴县| 西安市| 荥经县| 疏勒县| 华池县| 乐都县| 红河县| 绥阳县| 大英县| 西畴县| 太仆寺旗| 双柏县| 运城市| 平潭县| 揭阳市|