此处,使用cmd的方法,来下载ftp上的文件( 在下方,后面附加解释说明)
@set nowdate=%date:~0,4%%date:~5,2%%date:~8,2%
@set txtPath=D://ftptmp.txt
@set sourcePath=txt/file
@set destPath=D:\txt\%date:~0,4%\%date:~5,2%\%date:~8,2%
if not exist %destPath% md %destPath%
@echo on
echo open 192.168.0.1>%txtPath%
echo weather>>%txtPath%
echo weather1>>%txtPath%
echo cd %sourcePath%>>%txtPath%
echo prompt>>%txtPath%
echo lcd %destPath%>>%txtPath%
echo mget *%nowdate%*.TXT>>%txtPath%
echo on
ftp -s:%txtPath%
exit
1、@set 变量名,这个是为了设置变量在后面使用
2、date代表的是当前日期,采用date~0,4,的方式进行字符串截取,0起始位置的index,4为长度
3、if not exist 路径 md 路径,这句字面意思,就是判断路径是否存在,不存在的话就创建,md创建的意思
4、@echo on到echo on直接的是要写的文件内容,这是一个ftp的登录和操作的文本
5、echo 字符串>文件路径,这句话中一个>代表的是覆盖写入,>>两个代表的是追加写入
6、ftp的链接的文件格式如下:
第一句:open ftp的ip地址
第二句:用户名
第三句:密码
第四句:登录ftp后,要访问的目录,切换过去使用cd
第五句:prompt,默认是开,当下载文件时会询问是否确认下载,执行这句后就关闭了
第六句:你要下载到本地的目录,lcd后面加本地的路径
第七句:mget 文件,支持模糊文件名,要下载的文件
7、ftp -s:文件路径,这个是说ftp执行上面你生成的那个ftp的登录和操作的文本
8、exit 就是退出
上传文件到ftp
@echo off
@set filePath=%1%
@set txtPath=E:\\ftptmp.txt
@set destPath=D:\txt\%date:~0,4%\%date:~5,2%\%date:~8,2%
@set sourcePath=txt/file
echo open 192.168.0.1>%txtPath%
echo qxt>>%txtPath%
echo qxt0301>>%txtPath%
echo prompt>>%txtPath%
echo cd %destPath%>>%txtPath%
echo lcd %sourcePath%>>%txtPath%
echo put %filePath%>>%txtPath%
echo quit>>%txtPath%
echo on
ftp -s:%txtPath%
del %txtPath%
说明:
1、如果是通过网页的一般处理程序调用,这个是失败的,我很奇怪,但是未找到原因,写了后台定时任务是可行的。
3、与下载批处理不同的地方就是put这个命令
通过wget下载,包含目录的命令,如果ftp地址后面有目录,下载的时候会自动创建ip地址后面的目录结构
wget -nH -m --ftp-user=用户名--ftp-password=密码 ftp://IP地址端口号/目录/*