vba上传文件到ftp服务器指定目录下面

vba上传文件到ftp服务器指定目录 +脚本形式

文章目录

    • 1. 测试版本无校验:
    • 2. 测试版本有检验
    • 3. 文件不存在校验版本
    • 4. 文件不存在校验+必填项校验版本

1. 测试版本无校验:

在这里插入图片描述

Sub 按钮1_Click()
Dim i, str1, str2, str3, str4, str5, str6, str7, str8, str9, str10, d
Dim myarray()
On Error Resume Next
Set mysheet1 = ThisWorkbook.Worksheets("sheetName自定义")
Set fs = CreateObject("Scripting.FileSystemObject")'获取本地路径
If mysheet1.Cells(2, 3) <> "" Then
str3 = Replace(Sheet1.Cells(2, 3), "/", "\")
str3 = Trim(str3)
If Right(str3, 1) <> "\" Then
str3 = str3 & "\"
'MsgBox str6
End If
End If'循环扫描文件名,生成一个只有文件名字的字符串
For i = 4 To 100
If mysheet1.Cells(i, 3) <> "" Then
str1 = Replace(Sheet1.Cells(i, 3), "/", "\")
str1 = Trim(str1)
str4 = str3 & str1
str5 = "Echo mput " & Chr(34) & str4 & Chr(34) & " >>ftp.up"
str9 = str9 & " " & str5 'str9所有要上传的文件
End If
Next
'MsgBox str9'上传
Set fsd = CreateObject("Scripting.FileSystemObject")
str10 = str3 & "1.bat" '脚本
str11 = "Echo open ip地址>ftp.up" '远程路径
str12 = "Echo 用户名>>ftp.up" '账号
str13 = "Echo 密码>>ftp.up" '密码Set fid = fsd.CreateTextFile(str10, True) '后面开始写脚本
fid.WriteLine ("@Echo Off ") '开远程
fid.WriteLine (str11)
fid.WriteLine (str12)
fid.WriteLine (str13)
fid.WriteLine ("Echo Cd .\User >>ftp.up")
fid.WriteLine ("Echo binary>>ftp.up")
fid.WriteLine ("Echo prompt >>ftp.up")
fid.WriteLine ("Echo lcd " & Chr(34) & str3 & Chr(34) & ">>ftp.up")
fid.WriteLine (str9)
fid.WriteLine ("Echo bye>>ftp.up")
fid.WriteLine ("FTP -s:ftp.up")
fid.WriteLine ("del ftp.up /q")
fid.Close
str16 = "cmd.exe /c " & str10 '运行脚本
'MsgBox str16
Shell str16MsgBox "传输完成"
End Sub

2. 测试版本有检验

Sub 文件上传ftp服务器()
Dim i, str1, str2, str3, str4, str5, str6, str7, str8, str9, str10, d
Dim myarray(), MyFile As Object
Set MyFile = CreateObject("Scripting.FileSystemObject")
On Error Resume Next
Set mysheet1 = ThisWorkbook.Worksheets("sheetName自定义")
Set fs = CreateObject("Scripting.FileSystemObject")'获取本地路径
If mysheet1.Cells(2, 3) <> "" Then
str3 = Replace(Sheet1.Cells(2, 3), "/", "\")
str3 = Trim(str3)
If Right(str3, 1) <> "\" Then
str3 = str3 & "\"
'MsgBox str6
End If
End If'循环扫描文件名,生成一个只有文件名字的字符串
For i = 4 To 100
If mysheet1.Cells(i, 3) <> "" Then
str1 = Replace(Sheet1.Cells(i, 3), "/", "\")
str1 = Trim(str1)
str4 = str3 & str1If MyFile.FileExists(str4) = True Then
Else
MsgBox str4 & " 文件不存在"
End Ifstr5 = "Echo mput " & Chr(34) & str4 & Chr(34) & " >>ftp.up"
str9 = str9 & " " & str5 'str9所有要上传的文件
End If
Next
'MsgBox str9'上传
Set fsd = CreateObject("Scripting.FileSystemObject")
str10 = str3 & "1.bat" '脚本
str11 = "Echo open IP地址>ftp.up" '远程路径
str12 = "Echo 用户名>>ftp.up" '账号
str13 = "Echo 口令>>ftp.up" '密码Set fid = fsd.CreateTextFile(str10, True) '后面开始写脚本
fid.WriteLine ("@Echo Off ") '开远程
fid.WriteLine (str11)
fid.WriteLine (str12)
fid.WriteLine (str13)
fid.WriteLine ("Echo Cd .\User >>ftp.up")
fid.WriteLine ("Echo binary>>ftp.up")
fid.WriteLine ("Echo prompt >>ftp.up")
fid.WriteLine ("Echo lcd " & Chr(34) & str3 & Chr(34) & ">>ftp.up")
fid.WriteLine (str9)
fid.WriteLine ("Echo bye>>ftp.up")
fid.WriteLine ("FTP -s:ftp.up")
fid.WriteLine ("del ftp.up /q")
fid.Close
str16 = "cmd.exe /c " & str10 '运行脚本
'MsgBox str16
Shell str16MsgBox "传输完成"
End Sub

3. 文件不存在校验版本

Sub 代码文件上传()Dim i, str1, str2, str3, str4, str5, str6, str7, str8, str9, str10, d
Dim myarray(), MyFile As Object
Set MyFile = CreateObject("Scripting.FileSystemObject")
On Error Resume Next
Set mysheet1 = ThisWorkbook.Worksheets("核心_变更解决方案(模版)")
Set fs = CreateObject("Scripting.FileSystemObject")'获取本地路径
If mysheet1.Cells(18, 5) <> "" Then
str3 = Replace(Sheet1.Cells(18, 5), "/", "\")
str3 = Trim(str3)
If Right(str3, 1) <> "\" Then
str3 = str3 & "\"
'MsgBox str6
End If
End If'循环扫描文件名,生成一个只有文件名字的字符串
For i = 20 To 100
If mysheet1.Cells(i, 5) <> "" Then
str1 = Replace(Sheet1.Cells(i, 5), "/", "\")
str1 = Trim(str1)
str4 = str3 & str1If MyFile.FileExists(str4) = True Then
Else
MsgBox str4 & " 文件不存在"
End Ifstr5 = "Echo mput " & Chr(34) & str4 & Chr(34) & " >>ftp.up"
str9 = str9 & " " & str5 'str9所有要上传的文件
End If
Next
'MsgBox str9'上传
Set fsd = CreateObject("Scripting.FileSystemObject")
str10 = str3 & "1.bat" '脚本
str11 = "Echo open IP地址>ftp.up" '远程路径
str12 = "Echo 用户名>>ftp.up" '账号
str13 = "Echo 口令>>ftp.up" '密码Set fid = fsd.CreateTextFile(str10, True) '后面开始写脚本
fid.WriteLine ("@Echo Off ") '开远程
fid.WriteLine (str11)
fid.WriteLine (str12)
fid.WriteLine (str13)
fid.WriteLine ("Echo Cd .\User >>ftp.up")
fid.WriteLine ("Echo binary>>ftp.up")
fid.WriteLine ("Echo prompt >>ftp.up")
fid.WriteLine ("Echo lcd " & Chr(34) & str3 & Chr(34) & ">>ftp.up")
fid.WriteLine (str9)
fid.WriteLine ("Echo bye>>ftp.up")
fid.WriteLine ("FTP -s:ftp.up")
fid.WriteLine ("del ftp.up /q")
fid.Close
str16 = "cmd.exe /c " & str10 '运行脚本
'MsgBox str16
Shell str16MsgBox "传输完成"
End Sub

4. 文件不存在校验+必填项校验版本

在这里插入图片描述

Sub 代码文件上传()' 定义变量 i for循环, str1 文件路径, str3本地路径, str4=str3+str1 文件的绝对路径, str5 批量上传文件列表
'str9 所有要上传的文件, str10=str3+1.bat
Dim i, str1, str3, str4, str5, str9, str10'strname1  key对应的value 这里指系统名, strname 获取模块名称, loginname 登录用户, loginpwd 登录口令
Dim myarray(), MyFile As Object, strname1, strname, loginname, loginpwd'创建了一个FSO对象,然后中用它来读写文本文件,删除文件等
Set MyFile = CreateObject("Scripting.FileSystemObject")'当加上On Error Resume Next语句后,如果后面的程序出现"运行时错误"时,会继续运行,不中断。
On Error Resume Next'定义(变更文件扫描清单)工作表
Set mysheet1 = ThisWorkbook.Worksheets("变更文件扫描清单")
'定义(Sheet1)工作表
Set checklist = ThisWorkbook.Worksheets("Sheet1")'创建了一个FSO对象,然后中用它来读写文本文件,删除文件等
Set fs = CreateObject("Scripting.FileSystemObject")' ----判断指定必填项是否为空 Start----
If mysheet1.Cells(3, 1) = "" Then
MsgBox "系统名称不能为空"
MsgBox "请填写信息完成后,请重新上传!"
Exit Sub
End If
If mysheet1.Cells(3, 2) = "" Then
MsgBox "模块名称不能为空"
MsgBox "请填写信息完成后,请重新上传!"
Exit Sub
End If
If mysheet1.Cells(3, 3) = "" Then
MsgBox "用户名不能为空"
MsgBox "请填写信息完成后,请重新上传!"
Exit Sub
End If
If mysheet1.Cells(3, 4) = "" Then
MsgBox "口令不能为空"
MsgBox "请填写信息完成后,请重新上传!"
Exit Sub
End If
If mysheet1.Cells(5, 1) = "" Then
MsgBox "变更号不能为空"
MsgBox "请填写信息完成后,请重新上传!"
Exit Sub
End If
' ----判断指定必填项是否为空 End----'获取本地路径
If mysheet1.Cells(3, 5) <> "" Then
str3 = Replace(Sheet1.Cells(3, 5), "/", "\")
str3 = Trim(str3)
If Right(str3, 1) <> "\" Then
str3 = str3 & "\"End If
Else: MsgBox "本地路径不能为空"
MsgBox "请填写信息完成后,请重新上传!"
Exit Sub
End If'获取指定表格值
strname = mysheet1.Cells(3, 2)For c = 1 To 25
initkey = checklist.Cells(c, 3)
If initkey = strname Then
strname1 = checklist.Cells(c, 4)
Exit For
End If
Nextloginname = mysheet1.Cells(3, 3)
If strname1 <> loginname Then
MsgBox "模块名与用户名不区配,请核实!!!"
MsgBox "请填写信息完成后,请重新上传!"
Exit Sub
End If'循环扫描文件名,生成一个只有文件名字的字符串
For i = 5 To 100
If mysheet1.Cells(i, 5) <> "" Then
str1 = Replace(Sheet1.Cells(i, 5), "/", "\")
str1 = Trim(str1)
str4 = str3 & str1If MyFile.FileExists(str4) = True Then
Else
MsgBox str4 & " 文件不存在"
End Ifstr5 = "Echo mput " & Chr(34) & str4 & Chr(34) & " >>ftp.up"
str9 = str9 & " " & str5 'str9所有要上传的文件
End If
Next
'MsgBox str9loginpwd = mysheet1.Cells(3, 4)
'上传
Set fsd = CreateObject("Scripting.FileSystemObject")
str10 = str3 & "1.bat" '脚本
str11 = "Echo open IP地址>ftp.up" '远程路径
str12 = "Echo " & loginname & ">>ftp.up" '账号
str13 = "Echo " & loginpwd & ">>ftp.up" '密码wj1 = "set " & Chr(34) & "i=/app/CodeQualityScan/" & loginname & "/" & loginname & "/"
wj2 = "set filesname=" & mysheet1.Cells(5, 1)'---后面开始拼接脚本 Start---
Set fid = fsd.CreateTextFile(str10, True)'开远程
fid.WriteLine ("@Echo Off ")
fid.WriteLine (wj1)
fid.WriteLine (wj2)
fid.WriteLine (str11)
fid.WriteLine (str12)
fid.WriteLine (str13)
fid.WriteLine ("Echo Cd .\User >>ftp.up")
fid.WriteLine ("Echo binary>>ftp.up")
'进入指定ftp目录
fid.WriteLine ("Echo cd %i%>>ftp.up")
'创建指定文件夹
fid.WriteLine ("Echo mkdir %filesname%>>ftp.up")
'进入指定文件夹
fid.WriteLine ("Echo cd %filesname%>>ftp.up")
fid.WriteLine ("Echo prompt >>ftp.up")
fid.WriteLine ("Echo lcd " & Chr(34) & str3 & Chr(34) & ">>ftp.up")
fid.WriteLine (str9)
fid.WriteLine ("Echo bye>>ftp.up")
fid.WriteLine ("FTP -s:ftp.up")
fid.WriteLine ("del ftp.up /q")
fid.Close
'---后面开始拼接脚本 End---
str16 = "cmd.exe /c " & str10 '运行脚本
'MsgBox str16
Shell str16MsgBox "传输完成"
End Sub

1.bat脚本

@Echo Off 
set "i=/app/CodeQualityScan/系统名/用户名/
set filesname=变更号
Echo open IP地址>ftp.up
Echo 用户名>>ftp.up
Echo 口令>>ftp.up
Echo Cd .\User >>ftp.up
Echo binary>>ftp.up
Echo cd %i%>>ftp.up
Echo mkdir %filesname%>>ftp.up
Echo cd %filesname%>>ftp.up
Echo prompt >>ftp.up
Echo lcd "D:\Workspaces\xxxprojectname\">>ftp.upEcho mput "D:\Workspaces\xxxprojectname\ui\js\JsFileName.js" >>ftp.up Echo mput "D:\Workspaces\xxxprojectname\java\JavasadasasdsdsdFileName.java" >>ftp.up Echo mput "D:\Workspaces\xxxprojectname\ui\jsp\JspFileName.jsp" >>ftp.up
Echo bye>>ftp.up
FTP -s:ftp.up
del ftp.up /q

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/523533.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分布式存储首选,浪潮商用机器FP5466G2服务器测评分析

戳蓝字“CSDN云计算”关注我们哦&#xff01;如今随着信息时代的到来&#xff0c;以云计算、大数据、人工智能为代表的新晋技术与应用实现了爆发式的增长&#xff0c;随之而来促生了原本存在于各个行业的大量业务应用中PB级&#xff0c;甚至EB级的海量版数据信息&#xff0c;这…

pipelines mysql_Scrapy爬取豆瓣图书数据并写入MySQL

介绍本篇涉及的内容主要是获取分类下的所有图书数据&#xff0c;并写入MySQL准备Python3.6、Scrapy、Twisted、MySQLdb等演示代码一、创建项目scrapy startproject BookSpider #创建项目scrapy genspider douban book.douban.com #创建豆瓣爬虫二、创建测试类(main.py)from scr…

独行速众行远,BitTitan携手世纪互联蓝云助力用户数据完美迁移

戳蓝字“CSDN云计算”关注我们哦&#xff01;近日&#xff0c;Saas解决方案提供商BitTitan宣布&#xff0c;将拓展与世纪互联蓝云的合作&#xff0c;双方将在中国的云服务市场上线BitTitan广受欢迎的MigrationWiz用户数据迁移套装方案。BitTitan是一家致力于让IT专业人员通过自…

Kafka精华问答 | 为什么要用Message Queue?

Kafka is a distributed,partitioned,replicated commit logservice。它提供了类似于JMS的特性&#xff0c;但是在设计实现上完全不同&#xff0c;此外它并不是JMS规范的实现。今天就让我们一起来看看关于Kafka 的精华问答吧。1Q&#xff1a;Kafka的主要功能是什么&#xff1f;…

360深度实践:Flink与Storm协议级对比

戳蓝字“CSDN云计算”关注我们哦&#xff01;文 | 张馨予 来源 | 高可用架构作者 张馨予&#xff0c;360 大数据计算平台负责人。北京邮电大学硕士&#xff0c;2015年加入360系统部&#xff0c;一直致力于公司大数据计算平台的易用性、稳定性和性能优化的研发工作。目前主要负…

layui获得列表json数据_golang实战开发之博客功能篇:文章列表的读取与展示和分类筛选展示处理...

前面我们介绍了文章详情页面的展示的逻辑代码实现&#xff0c;这一节&#xff0c;我们将继续讲解文章列表的读取和展示、文章根据分类进行筛选、最新文章、热门文章等的调用处理逻辑。首先&#xff0c;我们先编写文章列表页的前端代码。这里&#xff0c;我们文章采用类似WordPr…

“智企云中享“,首届SAP中国云大会召开

2019 年 6 月 5 日&#xff0c;上海讯— 今日&#xff0c;首届SAP云大会在上海盛大召开。作为SAP云计算家族在中国的首秀&#xff0c;大会全面呈现了SAP云业务的战略、产品、商业场景、浸入式体验。作为体验管理领域的领导者&#xff0c;SAP以覆盖企业运营全价值链的云服务解决…

SpringBoot入门到精通_第7篇 _必知必会总结

接上一篇&#xff1a;SpringBoot入门到精通_第6篇 _必知必会

容器精华问答 | 如何进行跨机器的Container做Link ?

戳蓝字“CSDN云计算”关注我们哦&#xff01;云计算的发展日新月异&#xff0c;新技术层出不穷&#xff0c;尤其容器技术自2013年Docker容器问世以来一路高歌猛进红遍大江南北&#xff0c;与虚拟机相比&#xff0c;容器更显优势&#xff0c;有着更轻量、更快捷、占用资源更少&a…

腾讯也有“神盾局”?秀出“技术肌肉”就靠TA了……

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;漫威的超级英雄世界中&#xff0c;“神盾局”一直凭借着不少的先进武器装备&#xff0…

大话云存储,这个“对象”可能无处不在

戳蓝字“CSDN云计算”关注我们哦&#xff01;文 | pasca来源 | 蛋蛋团&#xff08;ID&#xff1a;dandan_tuan&#xff09;大纲前言1、Who&#xff1a;谁使用对象存储2、What&#xff1a;对象存储是什么3、Why&#xff1a;为什么他们会使用对象存储4、how to do:应用场景分析5、…

振奋!中国正式进入5G元年;华为5G俄罗斯签下大单;王坚进入工程院院士第二轮评审...

戳蓝字“CSDN云计算”关注我们哦&#xff01;嗨&#xff0c;大家好&#xff0c;重磅君带来的【云重磅】特别栏目&#xff0c;如期而至&#xff0c;每周五第一时间为大家带来重磅新闻。把握技术风向标&#xff0c;了解行业应用与实践&#xff0c;就交给我重磅君吧&#xff01;重…

企业实战_01_Redis下载/安装/运行/停止

文章目录一、Redis下载&#xff1a;官方&#xff1a;https://redis.io/二、Redis安装&#xff1a;2.1. 上传redis软件服务器2.2. 解压redis2.3. 进入redis目录&#xff0c;进行redis安装2.4. 执行redis安装测试&#xff1a;2.5. 安装异常处理三、redis 启动、停止3.1. 进入src目…

关于5G,你必须知道的事儿……

戳蓝字“CSDN云计算”关注我们哦&#xff01;文 | 小枣君来源 | 鲜枣课堂什么是5G 5G&#xff0c;就是5th Generation Mobile Networks&#xff08;第五代移动通信网络&#xff09;&#xff0c;也可以称为5th Generation Wireless Systems&#xff08;第五代无线通信系统&a…

java管理员登录_idea实现管理员登录javaweb

mysql创建db_0106数据库&#xff0c;创建表添加一条数据&#xff0c;id int自增&#xff0c;密码&#xff1a;为MD5加密insert into tb_sys values(null,admin,MD5(123),"系统管理员");项目目录结构com.isoft.db包下db.properties文件mysql.drivercom.mysql.jdbc.Dri…

linux环境下redis5.0的安装配置

文章目录一、Redis介绍&#xff1a;二、安装Redis2.1. 下载 解压 进入文件夹 然后 编译2.2. 启动Redis2.2.1. 指定配置文件启动redis2.2.2. 配置redis后台启动三. 登录验证一、Redis介绍&#xff1a; Redis是当前比较热门的NOSQL系统之一&#xff0c;它是一个key-value存储系统…

漫话:如何给女朋友解释什么是编译与反编译

戳蓝字“CSDN云计算”关注我们哦&#xff01;来源 | 漫话编程某天下班后&#xff0c;我在家里进行电话面试&#xff0c;问到面试者这样一个问题&#xff1a;"你知道使用哪些办法可以反编译Java代码吗&#xff1f;"。但是面试者回答的并不好&#xff0c;所以我在面试评…

企业实战_02_Redis基础

接上一篇&#xff1a;企业实战_01_Redis下载/安装/运行/停止https://blog.csdn.net/weixin_40816738/article/details/99198062 Redis小知识&#xff1a; 向服务器发送命令 ①redis-cli连上redis服务器后&#xff0c;可以在命令行发送指令&#xff1b; ②ping&#xff0c;测试…

Python 爬取 42 年高考数据,告诉你高考为什么这么

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 徐麟责编 | 伍杏玲封图 | CSDN付费下载于东方IC对于像作者一样已经工作的“上班族”来说&#xff0c;6月7号到9号三天无疑是兴奋到飞起的&#xff0c;终于迎来了令人愉悦的端午假期&#xff1a;然而有那么一群人&#xff0c;…