通过VBA实现FTP自动下载及关键字检索等功能

通过VBA实现FTP自动下载及关键字检索等功能

1.连接FTP,下载文件

1.1 常用参数配置
将经常使用的文件路径,用户名,密码,出力路径等值写在配置sheet中,可以方便使用者灵活修改。
对于设置为常量的参数,设置了必须输入check。防止发生异常。

1.2 连接FTP
命令:
(例 IP地址:10.10.10.10;用户名:user;密码:pwd)
①输入服务器地址:open 10.10.10.10
②输入用户名:user
③密码:pwd
④设置传输模式:bin (此处使用了二进制传输模式)
此处最好是选择二进制传输模式进行传输。如果使用了ASCII传输方式,文件的内容可能会被解释成其他计算机的存储格式,从而发生改变。而二进制模式,是逐一进行copy,可以保存文件的格式。

1.3 下载文件
1.3.1 指定本地文件保存路径
命令:
①输入文件路径:lcd 文件夹路径

1.3.2 单个文件下载
命令:
①下载单个文件:get 文件全路径
在只下载单个文件的情况下,直接输入get命令即可将文件下载到本地,无需其他操作。

1.3.3 批量文件下载
命令:
①关闭对话模式:prompt off
②下载多个文件:mget 文件夹全路径 /.
批量下载文件时,默认是处于交互模式的,当执行下载命令时,需要手动输入一个Y/N的选项。此处可通过命令将其关闭,默认为全部下载。
另外,可以使用通配符【*】来匹配文件名,以实现下载文件名中包含指定字符文件的功能。如:mget /aa/bb/*123.txt 可下载服务器上/aa/bb/路径下,文件名中包含123且类型为.txt的文件。

1.4 执行下载
1.4.1 新建txt文件,将以上的FTP命令按顺序写入。如:aa.txt

1.4.2 执行命令
通过调用shell的方式执行FTP下载处理。
Set sh = WshShell.Exec(“cmd /c " & “ftp -s:” & aa.txt)
此命令是调用dos的方式执行的,此处增加了"cmd /c”,可以使命令执行完毕后自动关闭窗口。

1.4.3 log处理
捕获输出属性:
Set oStdOut = sh.StdOut
捕获异常输出属性:
Set oStdErr = sh.StdErr

通过LOOP循环可以将执行过程中的内容全部定向输出到指定文件中。
Do Until oStdOut.AtEndOfStream
logFile.WriteLine oStdOut.ReadLine
Loop

扫描二维码关注公众号,回复: 11110924 查看本文章

同样的方式可使用oStdErr.ReadLine将异常内容全部定向输出到指定文件中。

1.5 异常处理
由于没有办法捕获执行过程中的异常来进行判断,所以,采取了通过以上1.4.3输出的异常文件来判断是否有异常发生。

2.关键字检索

对于从FTP下载的文件,常常需要进行一些分析处理。所以,此处,也做成了关键字检索功能。
此处,借助的是编辑器sakura的Grep功能。同样是使用将命令拼接做成执行文件的方式来执行操作,不再赘述。

以下是sakura的一些常用命令:
①-GREPMODE 使用grep模式启动
②-GKEY grep检索的关键字内容
③-GFILE grep的检索对象文件
④-GFLDER grep的检索对象文件夹
⑤-GOPT grep的检索条件
 检索条件有多个选项,如:
 S表示检索子文件夹,
 L表示区分大小写文字,
 R表示正则表达式
 W表示单语单位检索等

综上,本工具采用了简单的执行FTP命令的方式,减少了手动执行下载和检索处理的时间,减少重复作业,可以提高生产效率。

发布了12 篇原创文章 · 获赞 0 · 访问量 148

猜你喜欢

转载自blog.csdn.net/qq_41684416/article/details/103169464
今日推荐