Windows 下使用ftp批处理脚本

简介:

交互命令下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 plaincopy在CODE上查看代码片派生到我的代码片

  1. ftp -n -s:"ftptmp.bat"  


ftptmp.bat的内容如下:


[plain] view plaincopy在CODE上查看代码片派生到我的代码片

  1. open $ftphost  

  2. user $username $password  

  3. cd $filepath  

  4. get $filename  

  5. bye  

  6. exit  

命令中的变量需自行替换。



带参数的脚本

像以上的变量, 可能并不是一开始就决定的, 这部分需要动态的通过变量的方式传递进去。

想一想, Windows 的 .bat 脚本执行的时候,可以在后面直接加上一些参数, 在脚本中通过  %0%, %1%这样的方式获取。

举个例子, 以上执行main.bat 时,如果在命令行输入:


[plain] view plaincopy在CODE上查看代码片派生到我的代码片

  1. main.bat 111 222 333   


则在main.bat 的脚本文件中


%0%  对应的是 main.bat

%1%  对应的是 111

......

看例子:


[plain] view plaincopy在CODE上查看代码片派生到我的代码片

  1. @echo off  

  2. echo %0%>>main.log  

  3. echo %1%>>main.log  

  4.   

  5.   

  6. ftp -n -s:"ftptmp.bat"  


现在的问题是: ftptmp.bat 这个文件中 ftp 的脚本中并不能获取bat 设置的变量。


所以, 想一想解决思路可以是:  使用 main.bat 临时产生ftptmp.bat这个文件(变量替换成传入的值)

文件类似:


[plain] view plaincopy在CODE上查看代码片派生到我的代码片

  1. @echo off  

  2. echo open %1%>ftptmp.bat  

  3. echo user %2% %3%>>ftptmp.bat  

  4. echo cd %4%>>ftptmp.bat  

  5. echo get %5%>>ftptmp.bat  

  6. echo bye>>ftptmp.bat  

  7. echo exit>>ftptmp.bat  

  8. ftp -n -s:ftptmp.bat  


特别注意:大于号前面不留空格,命令不必打双引号


调用的时候:



[html] view plaincopy在CODE上查看代码片派生到我的代码片

  1. 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地址。如果指定,计算机必须是最后一个参数。














本文转自leonardos51CTO博客,原文链接:http://blog.51cto.com/leomars/1720599 ,如需转载请自行联系原作者

相关文章
|
4月前
|
Python Windows
python之windows脚本启动bat
python之windows脚本启动bat
|
3月前
|
监控 关系型数据库 MySQL
PowerShell 脚本编写 :自动化Windows 开发工作流程
PowerShell 脚本编写 :自动化Windows 开发工作流程
135 0
|
3月前
|
网络协议 文件存储 Windows
Windows Server 2019 FTP服务器搭建
Windows Server 2019 FTP服务器搭建
127 0
|
3月前
|
安全 网络协议 网络安全
Windows Server 2003 FTP服务器搭建
Windows Server 2003 FTP服务器搭建
|
3月前
|
弹性计算 关系型数据库 网络安全
阿里云国际版无法连接和访问Windows服务器中的FTP服务
阿里云国际版无法连接和访问Windows服务器中的FTP服务
|
5月前
|
安全 Shell Windows
记windows自定义bat脚本自启动
【8月更文挑战第27天】在Windows系统中,可让自定义bat脚本自启动的方法有两种:一是利用“启动”文件夹,通过创建bat脚本的快捷方式并将其放置于该文件夹;二是使用任务计划程序,创建一个启动时触发的任务来运行bat脚本。需确保脚本正确安全,避免对系统产生不良影响。
435 0
|
5月前
|
Windows Python
【Azure 批处理 Azure Batch】在Azure Batch中如何通过开始任务自动安装第三方依赖的一些软件(Windows环境)
【Azure 批处理 Azure Batch】在Azure Batch中如何通过开始任务自动安装第三方依赖的一些软件(Windows环境)
|
6月前
|
网络协议 Unix 网络安全
FTP服务器怎么搭建?Windows server搭建FPT服务器
FTP服务器是按照FTP协议提供文件传输服务的计算机。它用于在两台计算机间安全地传输文件,支持用户权限管理和跨平台操作。FTP使用控制连接处理命令,数据连接传输文件,有PORT和PASV模式。要搭建FTP服务器,首先在Windows Server 2008 R2上安装IIS,确保选中FTP服务。接着,创建FTP文件夹作为站点根目录,通过IIS管理器添加FTP站点,配置站点信息、身份验证和权限。测试客户端通过telnet和浏览器访问FTP服务器,确认能成功登录及浏览文件。FTP常用于文件共享和管理,可通过专用工具如FlashFXP上传下载文件。
221 0
FTP服务器怎么搭建?Windows server搭建FPT服务器
|
JavaScript Unix Linux
Bat脚本处理ftp超强案例解说
前言:    公司有几百台windows服务器,每次程序更新,如果是一台台拷数据,只怕安排十个人,一天都不一定做得完,所以就必须研究个全自动更新方案来,于是就想到了FTP,做个主FTP站,在几百台客户机上启动BAT脚本,每30秒检测一次,如果主站有更新程序,就自动下载更新,几分钟内,上400台windows服务器,都可以全自动更新程序完毕,相当实用,现把当初研究BAT的脚本思路贴出来,希望对大批量运维人员一个方向。
1146 0

热门文章

最新文章