批处理之FTP自动同步文件

您所在的位置:网站首页 bat上传文件到ftp 批处理之FTP自动同步文件

批处理之FTP自动同步文件

2023-11-25 04:48| 来源: 网络整理| 查看: 265

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命令。

! 转义到 shelldelete 删除远程文件literal 发送任意 ftp 命令prompt 在多个命令上强制交互提示? 打印本地帮助信息debug 切换调试模式ls 列出远程目录的内容put 发送一个文件send 发送一个文件,作用同putmput 发送多个文件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 连接到远程 FTPrmdir 在远程计算机上删除目录 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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3