【FTP】批处理实现FTP整站下载
问题背景背景:
http://topic.csdn.net/u/20090516/16/5b76eea0-94ae-4f09-837f-4ba1e7e80af0.html
?
备注:mget *.* 下载所有文件,但不能下载无扩展名的文件;
如果使用mget * 可以下载所有文件,但会把子目录的文件也下载过来。
?
DownLoad.bat
@echo offrem FTP服务器地址set ftpIP=10.80.9.1rem FTP登入名set ftpUser=myUserrem FTP登入密码set ftpPass=myPassrem 需要下载的FTP目录(默认为整站下载)set ftpFolder=.set LocalFolder=%~dp0rem 生成FTP目录结构>"%temp%/ftpTree.txt" type nulstart /w /min cmd /c MakeTree.bat "%ftpFolder%" 0for /f "usebackq delims=/" %%a in ("%temp%/ftpTree.txt") do ( cd /d "%LocalFolder%" md "%%a" cd /d "%%a" >"%temp%/ftpFile.txt" ( echo,%ftpUser% echo,%ftpPass% echo,cd "%%a" echo,mget *.* echo,bye ) if "%ftpUser%" equ "Anonymous" ( ftp -i -A -s:"%temp%/ftpFile.txt" %ftpIP% ) else ( ftp -i -s:"%temp%/ftpFile.txt" %ftpIP% ))del /f /q /a "%temp%/ftp*.txt"?
MakeTree.bat
@echo offset /a TreeNum=%2+1>>"%temp%/ftpTree.txt" echo/%~1>"%temp%/ftpFile%TreeNum%.txt" ( echo,%ftpUser% echo,%ftpPass% echo,cd %1 echo,dir echo,bye)if "%ftpUser%" equ "Anonymous" ( ftp -A -s:"%temp%/ftpFile%TreeNum%.txt" %ftpIP%|find " <DIR>">"%temp%/ftpFldLevel%TreeNum%.txt") else ( ftp -s:"%temp%/ftpFile%TreeNum%.txt" %ftpIP%|find " <DIR>">"%temp%/ftpFldLevel%TreeNum%.txt")for /f "usebackq tokens=2,3*" %%i in ("%temp%/ftpFldLevel%TreeNum%.txt") do ( start /w /min cmd /c MakeTree.bat "%~1/%%k" %TreeNum%)?