cmd命令或bat批处理上传文件到FTP服务器

        工作中,为了减轻人工工作量,有时需要做一些自动传输文件操作。这本身不是什么难事,可以通过各种编程语言实现。但假如你需要做得很轻量级,即不在客户端电脑安装任何软件就能完成这个工作。这时可以考虑用cmd命令实现,因为大多windows系统都是默认自带ftp命令的。

一、用cmd的ftp命令上传文件:

通过上面简单的命令就可以将我的文件D:\test.png上传到FTP服务器。

 

二、bat批处理命令上传文件到ftp服务器

既然能通过cmd命令能上传文件,那我们就干脆把它写成一个.bat批处理文件,然后在电脑中设置一个定时任务定时来执行这个bat文件就可以了。

新建一个文本文件修改后缀名为.bat,如sendByFTP.bat

@Echo Off
Echo open 192.168.0.243 >ftp.up
Echo test>>ftp.up
Echo testpassword>>ftp.up
Echo Cd .\ >>ftp.up
Echo binary>>ftp.up
Echo put "D:\test.png">>ftp.up
Echo bye>>ftp.up
FTP -s:ftp.up
del ftp.up /q

双击或者通过cmd命令运行这个sendByFTP.bat就能把D:\test.png上传到FTP服务器。

sendByFTP.bat的逻辑是先创建一个临时文件ftp.up,内容如下:

open 192.168.0.243 
test
testpassword
Cd .\ 
binary
put "D:\test.png"
bye

然后通过FTP -s:ftp.up命令运行这个临时文件,最后再通过del ftp.up /q删除掉这个临时文件。

为怎么要用Echo写创建临时文件ftp.up,然后再删掉,而不是干脆直接保存一个ftp.up文件,每次都用FTP运行这个ftp.up文件呢?原因很简单,因为你并不是每次都是上传D:\test.png文件,要上传什么文件应该是一个变量,命令运行时才确定。你有可能需要每天上传按当天日期命名的文件,或者检测某个目录有新增文件时才上传该文件。

 

三、问题与总结

1、上面的做法有些拙劣,不过能解决一般的简单问题。如果要定时上传文件,只需要写一个bat批命令,检测需要上传的文件,然后再通过上面介绍的方法,把文件上传到服务器,并在系统定时任务中定时运行bat脚本即可。另外注意不要同时运行多次jiao

2、还有一个很大的缺点是,windows自带的ftp命令似乎不支持pasv被动模式,我试过很多种方法去切换成pasv被动模式都没成功。

 

author:蓝何忠

email:lanhezhong@163.com

  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值