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命令逐個下載
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/q for yes/no/quit. - Use Control-C to abort commands.
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目錄結構 deltree.txt start/w cmd/c makeTree %dirname% 0 del result*.txt for/f "delims=/" %%i in (tree.txt)do( rem 獲取dirname的所有文件 rem ============================= cd %homedir% md %%i cd/d %%i echo %user%>ftp.txt echo %pass%>>ftp.txt echocd %%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% deltree.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 echocd%1>>ftp%treetime%.txt echodir>>ftp%treetime%.txt echo bye >>ftp%treetime%.txt ftp -A -s:ftp%treetime%.txt %host% |find"DIR>">result%treetime%.txt for/f "tokens=2,3*" %%i in (result%treetime%.txt)do(start/w cmd/c Maketree.bat %1%%k %treetime%) del result%treetime%.txt del ftp%treetime%.txt