Windows 下使用ftp批处理脚本
2015-12-08 06:19
537 查看
交互命令下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.batmain.bat 的内容就很简单:[plain] view plaincopyftp -n -s:"ftptmp.bat"
ftptmp.bat的内容如下:
[plain] view plaincopy
open $ftphost
user $username $password
cd $filepath
get $filename
bye
exit
命令中的变量需自行替换。
带参数的脚本
像以上的变量, 可能并不是一开始就决定的, 这部分需要动态的通过变量的方式传递进去。想一想, Windows 的 .bat 脚本执行的时候,可以在后面直接加上一些参数, 在脚本中通过 %0%, %1%这样的方式获取。举个例子, 以上执行main.bat 时,如果在命令行输入:[plain] view plaincopy
main.bat 111 222 333
则在main.bat 的脚本文件中
%0% 对应的是 main.bat%1% 对应的是 111......
看例子:
[plain] view plaincopy
@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 plaincopy
@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 plaincopy
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地址。如果指定,计算机必须是最后一个参数。
相关文章推荐
- 如何重装TCP/IP协议
- Windows 8 官方高清壁纸欣赏与下载
- 谁是桌面王者?Win PK Linux三大镇山之宝
- 对《大家都在点赞 Windows Terminal,我决定给你泼一盆冷水》一文的商榷
- Windows Clang开发环境备忘
- 从Windows系统下访问Linux分区相关软件
- 对《大家都在点赞 Windows Terminal,我决定给你泼一盆冷水》一文的商榷
- Windows下搭建本地SVN服务器
- Visual Studio 2012 示例代码浏览器 - 数以千计的开发示例近在手边,唾手可得
- Visual Studio 2012 示例代码浏览器 - 数以千计的开发示例近在手边,唾手可得
- 微软镜像下载
- windows server域用户提升到本地更高权限组中的方法
- 使用命令修改注册表键值及权限
- 通过手机、电脑远程开关机,Windows和linux机手机,电脑相互控制
- Windows XP最新应用技巧大荟萃
- Windows 系统组策略应用全攻略(上)第1/2页
- VBS脚本写的Windows硬件检测工具分享
- Microsoft Windows Vista 简体中文企业版 MVL DVD IMG 32-bit(1.9GB)