设为首页 收藏本站
查看: 959|回复: 0

[经验分享] Windows 下使用ftp批处理脚本

[复制链接]

尚未签到

发表于 2018-6-20 12:06:19 | 显示全部楼层 |阅读模式
交互命令下FTP
  一般状况下, 我们使用FTP 到某台机器上进行文件上传、下载的操作,
  在命令方式下,基本上是:
  1.ftp  主机名
  2.输入用户名
  3. 输入密码
  4. 切换模式(asc 或者是 bin)
  5. 上传或下载(put 或者是 get)
  6. 退出(bye  or quit)
  如果使用一些FTP 工具的话, 操作起来就更简单了。
ftp 批处理脚本
  如果我们要定期的自动做一些FTP的动作的话, 可以写一个批处理档, 放到Windows 的Task 中定期执行。
  这种思路的一般解法是:写两个批处理文件, 一个是主批处理,用来调用FTP; 另外一个是ftp 操作的批处理(这个文件的后缀名可以随意)。
  这里的实例的两个文件是:main.bat ; ftptmp.bat
  main.bat 的内容就很简单:
  [plain] view plaincopyhttps://code.csdn.net/assets/CODE_ico.pnghttps://code.csdn.net/assets/ico_fork.svg

  •   ftp -n -s:"ftptmp.bat"
  ftptmp.bat的内容如下:
  [plain] view plaincopyhttps://code.csdn.net/assets/CODE_ico.pnghttps://code.csdn.net/assets/ico_fork.svg

  •   open $ftphost
  •   user $username $password
  •   cd $filepath
  •   get $filename
  •   bye
  •   exit
  命令中的变量需自行替换。
带参数的脚本
  像以上的变量, 可能并不是一开始就决定的, 这部分需要动态的通过变量的方式传递进去。
  想一想, Windows 的 .bat 脚本执行的时候,可以在后面直接加上一些参数, 在脚本中通过  %0%, %1%这样的方式获取。
  举个例子, 以上执行main.bat 时,如果在命令行输入:
  [plain] view plaincopyhttps://code.csdn.net/assets/CODE_ico.pnghttps://code.csdn.net/assets/ico_fork.svg

  •   main.bat 111 222 333
  则在main.bat 的脚本文件中
  %0%  对应的是 main.bat
  %1%  对应的是 111
  ......
  看例子:
  [plain] view plaincopyhttps://code.csdn.net/assets/CODE_ico.pnghttps://code.csdn.net/assets/ico_fork.svg

  •   @echo off
  •   echo %0%>>main.log
  •   echo %1%>>main.log


  •   ftp -n -s:"ftptmp.bat"
  现在的问题是: ftptmp.bat 这个文件中 ftp 的脚本中并不能获取bat 设置的变量。
  所以, 想一想解决思路可以是:  使用 main.bat 临时产生ftptmp.bat这个文件(变量替换成传入的值)
  文件类似:
  [plain] view plaincopyhttps://code.csdn.net/assets/CODE_ico.pnghttps://code.csdn.net/assets/ico_fork.svg

  •   @echo off
  •   echo open %1%>ftptmp.bat
  •   echo user %2% %3%>>ftptmp.bat
  •   echo cd %4%>>ftptmp.bat
  •   echo get %5%>>ftptmp.bat
  •   echo bye>>ftptmp.bat
  •   echo exit>>ftptmp.bat
  •   ftp -n -s:ftptmp.bat
  特别注意:大于号前面不留空格,命令不必打双引号
  调用的时候:
  [html] view plaincopyhttps://code.csdn.net/assets/CODE_ico.pnghttps://code.csdn.net/assets/ico_fork.svg

  •   main.bat host username password filepath filename
参考
  ftp [-v] [-d] [-i] [-n] [-g] [-s:FileName] [-a] [-w:WindowSize] [-A] [Host]
  参数:
  -v:禁止显示远程服务器响应。
  -d:启用调试、显示在客户端和服务器之间传递的所有ftp命令。
  -i:多个文件传送时关闭交互提示。
  -n:禁止自动登录到初始连接。
  -g:禁用文件名组,它允许在本地文件和路径名中使用通配符字符(*和?)。
  -s:FileName:指定包含ftp命令的文本文件;当ftp启动后,这些命令将自动运行。该参数中不允许有空格。使用该开关而不是重定向(>)。
  -a:在捆绑数据连接时使用任何本地接口。
  -w:WindowSize:替代默认大小为4096的传送缓冲区。
  -A:匿名登陆。
  Host:指定要连接到远程计算机的计算机名或IP地址。如果指定,计算机必须是最后一个参数。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-526393-1-1.html 上篇帖子: windows server 2012: 设置IP地址时 老提示已被设过 ,无法设置成功 下篇帖子: windows消息之PostMessage和SendMessage的内部实现
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表