批处理之FTP自动同步文件
1. FTP.exe工具
ftp.exe是Windows系统提供的一个FTP客户端命令行工具。通过ftp.exe可以完成登录,显示远程文件、下载、上传、重命名、删除远程文件等操作。
1.1. 命令参数
FTP [-v] [-d] [-i] [-n] [-g] [-s:filename] [-a] [-A] [-x:sendbuffer] [-r:recvbuffer] [-b:asyncbuffers] [-w:windowsize] [host]
- -v 禁止显示远程服务器响应。
- -n 禁止在初始连接时自动登录。
- -i 关闭多文件传输过程中的交互式提示。
- -d 启用调试。
- -g 禁用文件名通配(请参阅 GLOB 命令)。
- -s:filename 指定包含 FTP 命令的文本文件;命令在 FTP 启动后自动运行。
- -a 在绑字数据连接时使用所有本地接口。
- -A 匿名登录。
- -x:send sockbuf 覆盖默认的 SO_SNDBUF 大小 8192。
- -r:recv sockbuf 覆盖默认的 SO_RCVBUF 大小 8192。
- -b:async count 覆盖默认的异步计数 3
- -w:windowsize 覆盖默认的传输缓冲区大小 65535。
- host 指定主机名称或要连接到的远程主机的 IP 地址。
- mget 和 mput 命令将 y/n/q 视为 yes/no/quit。
- 使用 Ctrl-C 中止命令。
- 注意:一般情况,我们主要是通过ftp.exe来调用ftp命令文件,主要使用如下方式:
FTP -i -s:ftpCMD.txt
1.2. FTP命令
FTP命令可以在ftp.exe命令行环境下单个运行,也可以集成文件中,通过FTP -s:ftpCMD.txt这样的方式全部运行。以下列出所有的FTP命令。
- ! 转义到 shell
- delete 删除远程文件
- literal 发送任意 ftp 命令
- prompt 在多个命令上强制交互提示
- ? 打印本地帮助信息
- debug 切换调试模式
- ls 列出远程目录的内容
- put 发送一个文件
- send 发送一个文件,作用同put
- mput 发送多个文件
- status 显示当前状态
- append 附加至文件
- dir 列出远程目录的内容
- mdelete 删除多个文件
- pwd 在远程计算机上打印工作目录
- trace 切换数据包跟踪
- ascii 设置 ASCII 传输类型
- disconnect 终止 ftp 会话
- mdir 列出多个远程目录的内容
- quit 终止 ftp 会话并退出
- type 设置文件传输类型
- bell 命令完成时发出声响
- get 接收文件
- recv 接收文件,作用同get。
- mget 获取多个文件
- quote 发送任意 ftp 命令
- user 发送新用户信息
- binary 设置二进制传输类型
- glob 切换本地文件名的元字符扩展
- mkdir 在远程计算机上创建目录
- verbose 切换详细模式
- bye 终止 ftp 会话并退出
- hash 为每个缓冲区传输切换打印“#”
- mls 列出多个远程目录的内容
- remotehelp 从远程服务器获取帮助
- cd 更改远程工作目录
- help 打印本地帮助信息
- rename 重命名文件
- close 终止 ftp 会话
- lcd 更改本地工作目录
- open 连接到远程 FTP
- rmdir 在远程计算机上删除目录
1.3. 重点命令介绍
在ftpCMD.txt中编写FTP命令操作集,然后通过FTP -s:ftpCMD.txt来调用。
- 通过prompt关闭或开启确认提示,首次调用为关闭提示,再次调用则为开启提示
- 通过lcd命令来指定本地工作目录
lcd 本地工作目录
- 通过get/recv下载远程文件,本地文件名如果省略则和远程文件同名
get RemoteFile [LocalFile]
- 通过mget下载多个远程文件,远程文件至少1个,多个以空格区分,mget默认支持通配符(但是需要FTP服务,有的FTP不支持,FileZilla服务器支持通配符)
mget RemoteFiles [ …]
mget *.ini
- 通过put/send上传本地文件,远程文件如果省略则和本地文件同名
put LocalFile [RemoteFile]
- 通过mput上传本地文件到FTP服务器当前目录,本地文件至少1个,多个以空格区分
mput LocalFiles [ …]
- 通过mls保存远程目录下的文件及文件夹名,远程文件如果用-代替表示所有,本地文件用-代替表示输出到屏幕
mls RemoteFiles [ …]LocalFile
- 通过type指定传输类型,Ftp 同时支持 ASCII 和Binary两种文件传输类型。 默认的传输类型是 ASCII。在传输文本文件时应使用 ascii 命令。在 ASCII 模式中,将执行网络标准字符集间的字符转换。例如,行尾的字符在必要时根据目标操作系统进行转换。在传输可执行文件时应该使用 binary 命令。在二进制模式中,文件是按一字节为单位进行移动的。
type [TypeName]
- quit退出FTP命令行模式进入CMD窗口
1.4. 示例
172.18.30.182是FTP服务器IP,mike是用户名,123456是密码,注意mike和123456之后不要用空格。
open 172.18.30.182
mike
123456
prompt
type binary
lcd I:\ftp_local
mls - info.txt
get a.ini
mget 1.ini 2.ini
put info.txt
mput aa.ini bb.ini
quit
如果不想另外编写FTP命令文件,可以完全用批处理操作,相当于用批处理来生成FTP命令文件,再执行FTP命令文件,执行完之后,删除FTP命令文件。
@echo off
echo open 172.18.30.182>ftp.txt
echo mike>>ftp.txt
echo 123456>>ftp.txt
echo prompt>>ftp.txt
echo lcd i:\ftp_local>>ftp.txt
echo type binary>>ftp.txt
rem FileZilla Server不支持远程文件用-表示所有文件,支持用*表示所有文件
echo mls - info.txt>>ftp.txt
echo get a.ini>>ftp.txt
echo mget 1.ini 2.ini>>ftp.txt
echo put info.txt>>ftp.txt
echo mput aa.ini bb.ini>>ftp.txt
echo quit>>ftp.txt
ftp -s:ftp.txt
del ftp.txt
pause
执行情况:
2. 自动同步
FTP主要完成同步的工作,而自动则需要使用Windows的定时任务命令行工具schtasks。
FTPSync.bat负责调用FTP命令文件
ftp -i -s:ftpCMD.txt
FTPSyncTask.bat则负责制订定时任务,如每天的8点启动
schtasks /create /tn "FTPSync" /tr “d:\FTPSync.bat" /sc daily /st 08:00:00
每月、每周、每天、每小时等更多定时任务,请参考:批处理之计划任务at和schtasks
批处理之FTP自动同步文件相关推荐
- DOS批处理+ftp自动同步文件
自己电脑上的flashFXP未带自动同步文件功能,突然想到自己整个批处理文件+windows的任务实现自动同步文件! 系统:windows 环境:已安装flashFXP(版本应该没限制) 由于FTP服 ...
- 文档的管理计算机,如何使用FTP自动同步备份电脑文件数据?
现在我们很多人都有电脑文件数据备份的习惯,比如备份到U盘.移动硬盘.百度网盘.服务器等,将文件备份到U盘或者移动硬盘是比较常见的,相信小伙伴们知道如何备份,但是将电脑文件备份到FTP服务器应该很多小伙 ...
- RSYNC 自动同步文件免密
rsync 免密方式自动同步文件: rsync的客户端方式能够自动同步文件,非常方便,但是它在远程拷贝文件之前提示还需要输入一个密码,要实现脚本自动拷贝,必须要优化掉这个步骤,让rsync以密码文件的 ...
- u盘同步服务器文件,GoodSync配合U盘助你自动同步文件
首页 > 新闻动态 GoodSync配合U盘助你自动同步文件 目前许多用户需要把文件带回家处理,保持单位和家里的文件同步非常重要.这里介绍一个自动同步文件的"机器人":Goo ...
- 关于用批处理写ftp上传文件
利用批处理FTP上传文件 是益阳市局的一位朋友介绍的,不用编程就可实现文件FTP传输. 建一个批处理文件hntqyb.bat,内容为: @echo off ftp -s:sendtqyb.txt 17 ...
- idea 自动同步文件本地内容设置
刚开始从eclipse转到idea,发现idea从svn同步代码后,点开一个java类报错 说是某个方法不存在,以为是别人代码没有提全,就点到别人代码里面去看,顶行出现 "File was ...
- ftp 自动下载文件并解压
前几天为了工作想将Ftp文件自动下载解压然后将数据导入到excel,这样上班后就可以直接应用数据了,开始想看好多办法,比如PHP VB 等,但是最后都觉得不太好用,采用了系统自带的DOS 系命令,不过 ...
- linux scp 同步文件夹,Solaris下用scp自动同步文件
1. scp同步文件脚本 //syntest.sh #!/bin/bash # Setting cdm path is used to store client software host_dir=& ...
- Windows 下自动同步文件夹内容到另一个文件夹下
实现windows 使用bat脚本文件,复制文件夹到另一个盘,参考如下代码:/y是可以不显示:提示你需要覆盖一个文件,如下图: bat文件内容为 @echo off echo "使用bat脚 ...
最新文章
- 经典php代码,10个非常经典的php代码片段.doc
- 操作系统的初始化流程简图
- Python+Appium+POM实现APP端自动化测试
- (未写)tyvj-1333- Coder Space的邀请
- dalvik对于Java方法调用的实现
- 微信分享 ajax冲突,微信jssdk分享功能开发及解决ajax跨域的问题
- js if判断多个条件_五、if 条件判断
- fortran 读整行_我整周读过的最有趣的东西
- MFC中,多个Button响应同一个事件
- android 后台代码设置动画
- java调用数据库存储过程_Java调用SQL Server的存储过程详解
- Qt之FTP上传/下载
- Matlab数据库工具箱的简单使用
- java计算机毕业设计校园流浪猫图鉴管理系统的设计与实现源码+数据库+系统+lw文档+部署
- java nio 按行读取_JAVA之NIO按行读写大文件,完美解决中文乱码问题
- 什么叫ocpm、ocpc、ocpa?三种转化出价方式
- 前端笔记(03)——一文看懂flex布局
- 湖北物联网产业标准联盟成立
- C语言入门:华氏温度转换为摄氏温度
- 补充---信息安全数学基础第四章习题答案
热门文章
- mysqlworkbench导入excel数据屡次失败???你可能只是某个地方又智障了。没错,新手总是这么容易被智障问题绊住。(尝试3个小时总算成功了)
- dreamspark 注册,wp7 app hub微软手机开发者帐号(全新3步注册)
- c语言time_t转oletime,CTime、COleDateTime和CString之间的相互转化 | 求索阁
- 翻译程序的定义及其功能种类
- SRPG游戏开发(四十)第九章 战斗系统 - 二 计算战斗数据(Calculate Combat Data)
- GMM算法的个人理解
- i2c协议解读(附读写过程c代码)
- Xcode7 编译报错
- mysql报错In aggregated query without GROUP BY
- Camtasia Studio喀秋莎2021安装下载注册及使用的意外问题解决办法,值得收藏