Board logo

标题: [FTP] 批处理文件实现FTP整站下载 [打印本页]

作者: HAT    时间: 2011-5-27 02:02     标题: 批处理文件实现FTP整站下载

问题背景描述:
http://topic.csdn.net/u/20090516/16/5b76eea0-94ae-4f09-837f-4ba1e7e80af0.html

备注:mget *.* 下载所有文件,但不能下载无扩展名的文件;
如果使用mget * 可以下载所有文件,但会把子目录的文件也下载过来。

DownLoad.bat
  1. @echo off
  2. rem FTP服务器地址
  3. set ftpIP=10.80.9.1
  4. rem FTP登入名
  5. set ftpUser=myUser
  6. rem FTP登入密码
  7. set ftpPass=myPass
  8. rem 需要下载的FTP目录(默认为整站下载)
  9. set ftpFolder=.
  10. set LocalFolder=%~dp0
  11. rem 生成FTP目录结构
  12. >"%temp%\ftpTree.txt" type nul
  13. start /w /min cmd /c MakeTree.bat "%ftpFolder%" 0
  14. for /f "usebackq delims=/" %%a in ("%temp%\ftpTree.txt") do (
  15.     cd /d "%LocalFolder%"
  16.     md "%%a"
  17.     cd /d "%%a"
  18.     >"%temp%\ftpFile.txt" (
  19.         echo,%ftpUser%
  20.         echo,%ftpPass%
  21.         echo,cd "%%a"
  22.         echo,mget *.*
  23.         echo,bye
  24.     )
  25.     if "%ftpUser%" equ "Anonymous" (
  26.         ftp -i -A -s:"%temp%\ftpFile.txt" %ftpIP%
  27.     ) else (
  28.         ftp -i -s:"%temp%\ftpFile.txt" %ftpIP%
  29.     )
  30. )
  31. del /f /q /a "%temp%\ftp*.txt"
复制代码
MakeTree.bat
  1. @echo off
  2. set /a TreeNum=%2+1
  3. >>"%temp%\ftpTree.txt" echo/%~1
  4. >"%temp%\ftpFile%TreeNum%.txt" (
  5.     echo,%ftpUser%
  6.     echo,%ftpPass%
  7.     echo,cd %1
  8.     echo,dir
  9.     echo,bye
  10. )
  11. if "%ftpUser%" equ "Anonymous" (
  12.     ftp -A -s:"%temp%\ftpFile%TreeNum%.txt" %ftpIP%|find " <DIR>">"%temp%\ftpFldLevel%TreeNum%.txt"
  13. ) else (
  14.     ftp -s:"%temp%\ftpFile%TreeNum%.txt" %ftpIP%|find " <DIR>">"%temp%\ftpFldLevel%TreeNum%.txt"
  15. )
  16. for /f "usebackq tokens=2,3*" %%i in ("%temp%\ftpFldLevel%TreeNum%.txt") do (
  17.     start /w /min cmd /c MakeTree.bat "%~1\%%k" %TreeNum%
  18. )
复制代码
首发:http://blog.csdn.net/ljc007/archive/2010/04/17/5497005.aspx
作者: 853122    时间: 2014-2-3 13:17

厉害
作者: lo123    时间: 2015-7-7 14:36

看不懂,新手学习中,谢谢分享




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2