手机
当前位置:查字典教程网 >脚本专栏 >DOS/BAT >使用FTP下载目录,即FTP命令批量自动下载的bat文件
使用FTP下载目录,即FTP命令批量自动下载的bat文件
摘要:FTP不支持目录的下载,不过FTP命令提供了mget命令,允许多文件下载,但每下载一个文件都需要确认,不能自动完成。本文主要介绍使用批处理,...

FTP不支持目录的下载,不过FTP命令提供了mget命令,允许多文件下载,但每下载一个文件都需要确认,不能自动完成。本文主要介绍使用批处理,结合FTP的相关命令来实现批量文件的下载,以便达到目录下载的目的。

大致想法如下:

使用FTP下载目录,即FTP命令批量自动下载的bat文件1ftp-s:filenamehosts>result.txt执行脚本,并将结果定向输出到result.txt

使用FTP下载目录,即FTP命令批量自动下载的bat文件1脚本内容,如

使用FTP下载目录,即FTP命令批量自动下载的bat文件1cdmydir

使用FTP下载目录,即FTP命令批量自动下载的bat文件1ls

使用FTP下载目录,即FTP命令批量自动下载的bat文件1bye

使用FTP下载目录,即FTP命令批量自动下载的bat文件1可以将mydir命令列出

使用FTP下载目录,即FTP命令批量自动下载的bat文件1然后使用批处理分析result.txt

使用FTP下载目录,即FTP命令批量自动下载的bat文件1从150OpeningASCIImodedataconnectionforfilelist.的下一行开始算,直到226Transfercomplete都是要下载的内容

使用FTP下载目录,即FTP命令批量自动下载的bat文件1然后用批处理加ftp脚本,使用get命令逐个下载

但实际过程中发现,在FTP脚本中使用get有问题,提示参数错误,无法使用。

查看了ftp的帮助ftp -?

使用FTP下载目录,即FTP命令批量自动下载的bat文件1G:>ftp-?

使用FTP下载目录,即FTP命令批量自动下载的bat文件1

使用FTP下载目录,即FTP命令批量自动下载的bat文件1TransfersfilestoandfromacomputerrunninganFTPserverservice

使用FTP下载目录,即FTP命令批量自动下载的bat文件1(sometimescalledadaemon).Ftpcanbeusedinteractively.

使用FTP下载目录,即FTP命令批量自动下载的bat文件1

使用FTP下载目录,即FTP命令批量自动下载的bat文件1FTP[-v][-d][-i][-n][-g][-s:filename][-a][-w:windowsize][-A][host]

使用FTP下载目录,即FTP命令批量自动下载的bat文件1

使用FTP下载目录,即FTP命令批量自动下载的bat文件1-vSuppressesdisplayofremoteserverresponses.

使用FTP下载目录,即FTP命令批量自动下载的bat文件1-nSuppressesauto-loginuponinitialconnection.

使用FTP下载目录,即FTP命令批量自动下载的bat文件1-iTurnsoffinteractivepromptingduringmultiplefile

使用FTP下载目录,即FTP命令批量自动下载的bat文件1transfers.

使用FTP下载目录,即FTP命令批量自动下载的bat文件1-dEnablesdebugging.

使用FTP下载目录,即FTP命令批量自动下载的bat文件1-gDisablesfilenameglobbing(seeGLOBcommand).

使用FTP下载目录,即FTP命令批量自动下载的bat文件1-s:filenameSpecifiesatextfilecontainingFTPcommands;the

使用FTP下载目录,即FTP命令批量自动下载的bat文件1commandswillautomaticallyrunafterFTPstarts.

使用FTP下载目录,即FTP命令批量自动下载的bat文件1-aUseanylocalinterfacewhenbindingdataconnection.

使用FTP下载目录,即FTP命令批量自动下载的bat文件1-Aloginasanonymous.

使用FTP下载目录,即FTP命令批量自动下载的bat文件1-w:buffersizeOverridesthedefaulttransferbuffersizeof4096.

使用FTP下载目录,即FTP命令批量自动下载的bat文件1hostSpecifiesthehostnameorIPaddressoftheremote

使用FTP下载目录,即FTP命令批量自动下载的bat文件1hosttoconnectto.

使用FTP下载目录,即FTP命令批量自动下载的bat文件1

使用FTP下载目录,即FTP命令批量自动下载的bat文件1Notes:

使用FTP下载目录,即FTP命令批量自动下载的bat文件1-mgetandmputcommandstakey/n/qforyes/no/quit.

使用FTP下载目录,即FTP命令批量自动下载的bat文件1-UseControl-Ctoabortcommands.

使用FTP下载目录,即FTP命令批量自动下载的bat文件1

发现 -i 参数可以去除mget的提示,经过测试,实现了如下脚本(使用了匿名登入,如果非匿名,可以修改登入脚本):

使用FTP下载目录,即FTP命令批量自动下载的bat文件1echocdautoruns>ftp.txt

使用FTP下载目录,即FTP命令批量自动下载的bat文件1echomget*>>ftp.txt

使用FTP下载目录,即FTP命令批量自动下载的bat文件1echobye>>ftp.txt

使用FTP下载目录,即FTP命令批量自动下载的bat文件1ftp-i-A-s:ftp.txt10.1.103.10

不过,这只是下载了目录中的文件,如果有子目录,那还需要用dir命令输出,并转向输出到文本,用find来提取目录,如:

使用FTP下载目录,即FTP命令批量自动下载的bat文件1echocdautoruns>ftp.txt

使用FTP下载目录,即FTP命令批量自动下载的bat文件1echodir>>ftp.txt

使用FTP下载目录,即FTP命令批量自动下载的bat文件1echobye>>ftp.txt

使用FTP下载目录,即FTP命令批量自动下载的bat文件1ftp-A-s:ftp.txt10.1.103.10|find"<DIR>">result.txt

使用FTP下载目录,即FTP命令批量自动下载的bat文件1for/f"tokens=2,3*"%%iin(result.txt)doecho%%k

如有子文件夹,那就要深入编写了。

经过编写测试,实现如下脚本,运行环境WINXP SP2,运行通过,未载其它系统上测试过:

1、主要脚本ftpget.bat,更改前4个变量的相关信息,该脚本调用makeTree.bat,请参见2

使用FTP下载目录,即FTP命令批量自动下载的bat文件1remFTP服务器地址

使用FTP下载目录,即FTP命令批量自动下载的bat文件1sethost=10.1.103.10

使用FTP下载目录,即FTP命令批量自动下载的bat文件1

使用FTP下载目录,即FTP命令批量自动下载的bat文件1remFTP登入名,如果匿名不用改

使用FTP下载目录,即FTP命令批量自动下载的bat文件1setuser=anonymous

使用FTP下载目录,即FTP命令批量自动下载的bat文件1

使用FTP下载目录,即FTP命令批量自动下载的bat文件1remFTP登入密码,如果匿名不用改

使用FTP下载目录,即FTP命令批量自动下载的bat文件1setpass=123456

使用FTP下载目录,即FTP命令批量自动下载的bat文件1

使用FTP下载目录,即FTP命令批量自动下载的bat文件1rem需要下载的FTP目录,如果下载子目录以分格

使用FTP下载目录,即FTP命令批量自动下载的bat文件1setdirname=目录1子目录

使用FTP下载目录,即FTP命令批量自动下载的bat文件1

使用FTP下载目录,即FTP命令批量自动下载的bat文件1sethomedir=%cd%

使用FTP下载目录,即FTP命令批量自动下载的bat文件1

使用FTP下载目录,即FTP命令批量自动下载的bat文件1rem生成FTP目录结构

使用FTP下载目录,即FTP命令批量自动下载的bat文件1deltree.txt

使用FTP下载目录,即FTP命令批量自动下载的bat文件1start/wcmd/cmakeTree%dirname%0

使用FTP下载目录,即FTP命令批量自动下载的bat文件1delresult*.txt

使用FTP下载目录,即FTP命令批量自动下载的bat文件1

使用FTP下载目录,即FTP命令批量自动下载的bat文件1for/f"delims=/"%%iin(tree.txt)do(

使用FTP下载目录,即FTP命令批量自动下载的bat文件1

使用FTP下载目录,即FTP命令批量自动下载的bat文件1rem获取dirname的所有文件

使用FTP下载目录,即FTP命令批量自动下载的bat文件1rem=============================

使用FTP下载目录,即FTP命令批量自动下载的bat文件1cd%homedir%

使用FTP下载目录,即FTP命令批量自动下载的bat文件1md%%i

使用FTP下载目录,即FTP命令批量自动下载的bat文件1cd/d%%i

使用FTP下载目录,即FTP命令批量自动下载的bat文件1echo%user%>ftp.txt

使用FTP下载目录,即FTP命令批量自动下载的bat文件1echo%pass%>>ftp.txt

使用FTP下载目录,即FTP命令批量自动下载的bat文件1echocd%%i>>ftp.txt

使用FTP下载目录,即FTP命令批量自动下载的bat文件1

使用FTP下载目录,即FTP命令批量自动下载的bat文件1remmget*.*下载所有文件,但不能下载无扩展名的文件;

使用FTP下载目录,即FTP命令批量自动下载的bat文件1rem如果使用mget*可以下载所有文件,但会把子目录的文件也下载过来

使用FTP下载目录,即FTP命令批量自动下载的bat文件1echomget*.*>>ftp.txt

使用FTP下载目录,即FTP命令批量自动下载的bat文件1

使用FTP下载目录,即FTP命令批量自动下载的bat文件1echobye>>ftp.txt

使用FTP下载目录,即FTP命令批量自动下载的bat文件1ftp-i-A-s:ftp.txt%host%

使用FTP下载目录,即FTP命令批量自动下载的bat文件1delftp.txt

使用FTP下载目录,即FTP命令批量自动下载的bat文件1rem==============================

使用FTP下载目录,即FTP命令批量自动下载的bat文件1

使用FTP下载目录,即FTP命令批量自动下载的bat文件1)

使用FTP下载目录,即FTP命令批量自动下载的bat文件1cd%homedir%

使用FTP下载目录,即FTP命令批量自动下载的bat文件1deltree.txt

使用FTP下载目录,即FTP命令批量自动下载的bat文件1

2、maketree.bat,生成FTP目录树

使用FTP下载目录,即FTP命令批量自动下载的bat文件1rem生成FTP目录结构

使用FTP下载目录,即FTP命令批量自动下载的bat文件1rem调用方法maketreedir1dir2n(n>=1)

使用FTP下载目录,即FTP命令批量自动下载的bat文件1rem%1==dir1dir2

使用FTP下载目录,即FTP命令批量自动下载的bat文件1rem%2==n

使用FTP下载目录,即FTP命令批量自动下载的bat文件1

使用FTP下载目录,即FTP命令批量自动下载的bat文件1set/atreetime=%2+1

使用FTP下载目录,即FTP命令批量自动下载的bat文件1echo%1>>tree.txt

使用FTP下载目录,即FTP命令批量自动下载的bat文件1

使用FTP下载目录,即FTP命令批量自动下载的bat文件1echo%user%>ftp%treetime%.txt

使用FTP下载目录,即FTP命令批量自动下载的bat文件1echo%pass%>>ftp%treetime%.txt

使用FTP下载目录,即FTP命令批量自动下载的bat文件1echocd%1>>ftp%treetime%.txt

使用FTP下载目录,即FTP命令批量自动下载的bat文件1echodir>>ftp%treetime%.txt

使用FTP下载目录,即FTP命令批量自动下载的bat文件1echobye>>ftp%treetime%.txt

使用FTP下载目录,即FTP命令批量自动下载的bat文件1ftp-A-s:ftp%treetime%.txt%host%|find"<DIR>">result%treetime%.txt

使用FTP下载目录,即FTP命令批量自动下载的bat文件1for/f"tokens=2,3*"%%iin(result%treetime%.txt)do(start/wcmd/cMaketree.bat%1%%k%treetime%)

使用FTP下载目录,即FTP命令批量自动下载的bat文件1delresult%treetime%.txt

使用FTP下载目录,即FTP命令批量自动下载的bat文件1delftp%treetime%.txt

使用FTP下载目录,即FTP命令批量自动下载的bat文件1

使用FTP下载目录,即FTP命令批量自动下载的bat文件1

虽然已经实现,但仍然有小问题,就是mget *.* 不能下载无扩展名的程序;如果使用mget * 可以下载所有文件,但会把子目录的文件也下载过来。get在FTP脚本中出错也不知为何。

相关信息参考:使用FTP 批处理脚本,Ftp 子命令

【使用FTP下载目录,即FTP命令批量自动下载的bat文件】相关文章:

迁移图片目录的bat代码

CMD下建立虚拟目录的方法

自动重启电脑的bat文件

查看进程使用的端口的批处理文件

巧用DOS命令合并多个文本文件的内容

用批处理上传文件到ftp目录下的实现方法

如何用DOS命令删除顽固文件夹啊

命令行删除带.的文件夹(畸形文件夹)

用批处理得到每个目录占用的空间

使用forfiles命令批量删除N天前文件

精品推荐
分类导航