Windows下通过bat脚本实现自动上传文件到ftp服务器

Windows下通过bat脚本实现自动上传文件到ftp服务器

1

2

3

4

5

6

7

8

9

10

@Echo Off

Echo open ip_address [port] >ftp.up

Echo [username]>>ftp.up

Echo [password]>>ftp.up

Echo Cd .\ >>ftp.up

Echo binary>>ftp.up

Echo put "C:\ExAdminAuditLog.txt">>ftp.up

Echo bye>>ftp.up

FTP -s:ftp.up

del ftp.up /q

 

先贴代码了,[port]不填的话就是默认端口号,注意上面的username和password后的>>之间不要有空格,否则用户名和密码就不正确了。

大体上就是将ftp用到的交互式命令写到一个临时文件中,执行完后并删除。如果要调试的话,可以在代码的最后一行加上pause,这样执行完会暂停,能看到执行结果。

代码比较简单,粘贴到一个XXX.bat文件中双击执行就ok了。

 

帐号:FTP_Admin
密码:Password11
我想将本地D:\User List\User.csv 文件通过执行bat批处理自动上传到FTP中的文件夹User下面

单个文件:

@Echo Off
Echo open 10.80.138.16 >ftp.up
Echo FTP_Admin >>ftp.up
Echo Password11 >>ftp.up
Echo Cd .\User >>ftp.up
Echo binary>>ftp.up
Echo put "D:\User List\User.csv">>ftp.up
Echo bye>>ftp.up
FTP -s:ftp.up
del ftp.up /q
Pause

1. 如果我想把\user 这个文件夹里所有的csv文件都上传到ftp中去 要怎么修改?
2. 运行完后cmd窗口就开着了 怎么让它自己关闭掉?
3. 好像这个命令不能多次执行,是不是因为文件已经copy过去了 无法覆盖所导致?

多个文件:

@Echo Off
Echo open 192.168.131.65>ftp.up
Echo jd08139>>ftp.up
Echo jd1058522521>>ftp.up
Echo Cd .\User >>ftp.up
Echo binary>>ftp.up
Echo prompt >>ftp.up
Echo lcd "R:\User List">>ftp.up
Echo mput "R:\User List\*.*">>ftp.up
Echo bye>>ftp.up
FTP -s:ftp.up
del ftp.up /q

使用bat脚本上传文件到FTP服务器

先上代码

set y=%date:~0,4% 的理解

@Echo Off
set y=%date:~0,4%
set m=%date:~5,2%
set d=%date:~8,2%
set localPath=D:\Mastercom\426d59a970e64545829648277267272a_%y%-%m%-%d%.csv
set ftpip=192.168.1.61
set username=ftp
set password=Aa123456
set ftpPath=.\ZHNOPPT
Echo open %ftpip% >ftp.up
Echo %username%>>ftp.up
Echo %password%>>ftp.up
Echo Cd %ftpPath% >>ftp.up
Echo binary>>ftp.up
Echo put %localPath%>>ftp.up
Echo bye>>ftp.up
FTP -s:ftp.up
del ftp.up /q
: Pause

上面的这个是终极版的,因为我上传的文件需要做一个定时任务,每周执行一次,每次上传当天的文件。
所以代码中

set y=%date:~0,4%
set m=%date:~5,2%
set d=%date:~8,2%
set localPath=D:\Mastercom\426d59a970e64545829648277267272a_%y%-%m%-%d%.csv

是拼接指定的文件。y、m、d是获取当天的年月日。不需要这个功能的同学可以直接忽略掉。

set ftpip=192.168.1.61
set username=ftp
set password=Aa123456
set ftpPath=.\ZHNOPPT

上面这部分是配置ftp的ip、端口、登录名,密码。以及存放到ftp服务器是路径。
其实也可以不用这样配置,直接替换掉下面的这些变量,但是提取出来感觉方便很多,容易改。下面的代码基本不用改。

Echo open %ftpip% >ftp.up
Echo %username%>>ftp.up
Echo %password%>>ftp.up
Echo Cd %ftpPath% >>ftp.up
Echo binary>>ftp.up
Echo put %localPath%>>ftp.up
Echo bye>>ftp.up
FTP -s:ftp.up
del ftp.up /q
: Pause

上面的参数配置好了,这部分的代码不用改基本上,如果改了参数名,把对应的参数名改一下就可以了。
这段代码的意思是:

连接ftp服务器
输入用户名
输入密码
切换到ftp服务器指定的目录
启动一个上传任务
将这个指定需要上传的文件加入到这个上传任务中
执行这个任务
销毁这个任务
结束

最后的Pause命令是在调试中使用的,双击bat脚本后,运行结果可以在控制台中看到。如果想要运行结束后控制台直接关闭,可以把这个命令注释掉。
bat 脚本中注释的符号为

: Pause
或者
rem Pause

 

 

  • 12
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值