如何用VBA调用批处理文件? 5

我有一个批处理文件,要用VBA来调用并执行批处理!批处理是这样的“type*.csv>>E:\汇总工具\汇总结果.csv”... 我有一个批处理文件,要用VBA来调用并执行批处理!批处理是这样的“type *.csv>>E:\汇总工具\汇总结果.csv” 展开
 我来答
小龙女男
2017-01-16 · TA获得超过1425个赞
知道小有建树答主
回答量:226
采纳率:0%
帮助的人:247万
展开全部

额,不太明白题主说的具体情况,我遇到2种。


1.批处理文件的代码是固定,要么通用性强,要么不跟随变量存在变化

这种情况下,直接调用批处理文件就好了。

Shell "X:\YY\ZZ\abc.bat"

2.批处理文件的代码是变化的,需要在VBA执行过程中写出来,这种情况就比较复杂啦

用Print命名写程序,然后也是Shell来执行啦,下面是我写的实际例子

Open strPNAME For Output As #nFNO
Print #nFNO, "open xx.xx.xxx.xx"   'open 主机名
Print #nFNO, "user"              '用户名
Print #nFNO, "abc"                '密码
'循环,根据Lot 数量,写相应行数的代码
For i = 7 To WorksheetFunction.CountA(Worksheets("RS").[J:J]) + 4
MakeSureDirectoryPathExists "D:\" & Worksheets("RS").Cells(i, "L") & "\" & Worksheets("RS").Cells(i, "J") & "\" '创建文件夹
localfd = "D:\" & Worksheets("RS").Cells(i, "L") & "\" & Worksheets("RS").Cells(i, "J")
'FTP 路径确定
    rsraw = Worksheets("RS").Cells(i, "J") & "*.csv"
    pth = Worksheets("RS").Cells(i, "M").Value
    px = Format(Worksheets("RS").Cells(i, "J"), ">")
     
    p0 = Mid(px, 1, 4)
    p1 = Mid(px, 5, 2)
    p2 = Mid(px, 7, 2)
    p3 = Mid(px, 9, 2)
ftpfolder = "/data1/on/exp/array/rs/" & pth & "/" & p0 & "/" & p1 & "/" & p2 & "/" & p3
'CD到Ftp目录,然后下载到本地,匹配条件为jpg文件
    Print #nFNO, "cd """; ftpfolder; """"
    Print #nFNO, "lcd """; localfd; """"
    Print #nFNO, "bin"
    Print #nFNO, "mget """; rsraw; """"
Next i
Print #nFNO, "bye"
'文件完成
Close #nFNO
ShellAndWait "ftp -v -i -s:" & strPNAME

以上,题主参考下吧

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式