中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: ftp怎样批量上传? 上一主题 | 下一主题
geminidos
新手上路





积分 7
发帖 4
注册 2010-4-5
状态 离线
『楼 主』:  ftp怎样批量上传?

要将本地D盘下ftp文件夹下所有文件及文件夹含子目录覆盖到服务器上
:: ftp信息
set ftpServer=133.0.0.1
set ftpUserName=sa
set ftpPassword=sa

:: ftp上传程序
echo open %ftpServer% >ftp.tmp
echo %ftpUserName%>>ftp.tmp
echo %ftpPassword%>>ftp.tmp
echo bin >>ftp.tmp
echo bell >>ftp.tmp
echo cd web >>ftp.tmp

后面就不会了。。。。

2010-4-6 13:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
exzzz
初级用户

游手好闲 + 无所事事 ..



积分 194
发帖 167
注册 2007-4-30
状态 离线
『第 2 楼』:  

ftp下上传是put命令,下载是get吧,很久没用忘记了,应该是这个。

你搜索一下 ftp.exe 的帮助文件。另外有个要注意的地方,密码最好不要有空格,另外可能会遇到密码之后不继续的问题,很容易解决,
echo %ftpPassword%>>ftp.tmp
修改成
echo %ftpPassword% >>ftp.tmp
password后面加多一个空格就可以当回车来用了。



  
2010-4-8 16:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 3 楼』:  

ftp -s:filename

2010-4-9 22:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
geminidos
新手上路





积分 7
发帖 4
注册 2010-4-5
状态 离线
『第 4 楼』:  

俄,又学到知识了,感谢二楼,版主大人,-s可以批量上传么?文件夹也可以?

2010-4-10 08:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 5 楼』:  Re 4 楼

需要自己写代码遍历文件夹



2010-4-10 14:06
查看资料  发短消息 网志   编辑帖子  回复  引用回复
pdanniel66
初级用户





积分 68
发帖 64
注册 2009-5-23
状态 离线
『第 6 楼』:  

我也有批量上传需求 (遍历文件夹),但搜寻不到,是否可以帮忙搜寻或提供代码,谢谢

2010-4-11 06:32
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
exzzz
初级用户

游手好闲 + 无所事事 ..



积分 194
发帖 167
注册 2007-4-30
状态 离线
『第 7 楼』:  

给你个例子吧,很久以前写的了,那时候还不熟,所以有很多绕来绕去的地方,而且两个文件实际可以合写成一个,有些地方可以模块化处理。

但是就不修改了,看看我那时候简单点的思维,你或许更容易理解。

当时的目的是,运行程序后能连接到公司ftp服务器,自动登录并获取可用的软件版本列表,并下载最新版本的软件回来,然后解压、并运行新版的软件。

用法:
注意这两个文件要放在 e:\bak 文件夹下面运行,不想放那里就修改一下。
将下面这段随便保存为个什么 .bat 就好了,这个是主程序,把IP跟用户名密码替换掉。
@echo off&cls
md e:\bak\temp
del /f /y /q e:\bak\temp\*.*
cls
:获得文件列表
echo !cls>>e:\bak\temp\new.txt
echo !echo off >e:\bak\temp\new.txt
echo !title 本程序由exzzz制作,正在下载最新的备份文件,请不要关闭本窗口!>>e:\bak\temp\new.txt
echo !cls>>e:\bak\temp\new.txt
echo !del /f e:\bak\bak.rar>>e:\bak\temp\new.txt
echo !cls>>e:\bak\temp\new.txt
echo open 58.61.XXX.XXX>>e:\bak\temp\new.txt
echo ch>>e:\bak\temp\new.txt
echo 1 >>e:\bak\temp\new.txt
echo hash>>e:\bak\temp\new.txt
echo bin>>e:\bak\temp\new.txt
echo lcd e:\bak>>e:\bak\temp\new.txt
echo cd chzs\exzzz\bak>>e:\bak\temp\new.txt
echo ls . e:\bak\temp\baklist.txt>>e:\bak\temp\new.txt
:下一行调用批处理生成新的任务文件
echo !call e:\bak\getbak.bat>>e:\bak\temp\new.txt
echo quit>>e:\bak\temp\new.txt

:运行前面的程序,以产生文件列表
ftp -s:e:\bak\temp\new.txt
:运行ftp生成的任务文件
ftp -s:e:\bak\temp\newjob.txt
下面这段就一定要保存为 getbak.bat 了,并且与上一个文件放在一个目录里面。IP,账号什么的自己修改好
@echo off&cls

echo =====================================
echo.
for /f "tokens=2 delims=k." %%a in (e:\bak\temp\baklist.txt) do (echo 检测到资源管理系统%%a版&set bakfile=%%a)



rem ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
goto end
:因为发现实在太多XXX不明白按C后按Y是什么意思,所以直接简化
:不显示手动选择版本了,直接下最新版本好了
:相当的郁闷,为什么现在那么多XXX没有一点理解能力.....
:如果日后需要,将☆之间的内容删除即可恢复为可手动选择的版本
rem ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆



:choz
echo =====================================
echo  以上是可供选择的版本,请选择任务...
echo =====================================
echo    按 Y 将默认下载 资源系统 %bakfile% 版
echo    按 N 手动输入版号下载指定的版本
echo =====================================
echo 如果只是误操作,请直接关闭本窗口

choice /c YN /n
if %ERRORLEVEL% equ 1 goto end
if %ERRORLEVEL% equ 2 goto man

:man
set /p bakfile=请手动输入要下载的版本号,例如 0420 :

:end
:获得任务文件
echo !cls>>e:\bak\temp\newjob.txt
echo !echo off >e:\bak\temp\newjob.txt
echo !title 本程序由exzzz制作,正在下载最新的程序文件,请不要关闭本窗口!>>e:\bak\temp\newjob.txt
echo !del /f e:\bak\bak.rar>>e:\bak\temp\newjob.txt
echo !cls>>e:\bak\temp\newjob.txt
echo open 58.61.XXX.XXX>>e:\bak\temp\newjob.txt
echo ch>>e:\bak\temp\newjob.txt
echo 1 >>e:\bak\temp\newjob.txt
echo hash>>e:\bak\temp\newjob.txt
echo bin>>e:\bak\temp\newjob.txt
echo lcd e:\bak>>e:\bak\temp\newjob.txt
echo cd chzs\exzzz\bak>>e:\bak\temp\newjob.txt
echo !cls>>e:\bak\temp\newjob.txt
echo get bak%bakfile%.rar bak.rar>>e:\bak\temp\newjob.txt
echo quit>>e:\bak\temp\newjob.txt
[ Last edited by exzzz on 2010-4-12 at 11:29 ]



  
2010-4-12 11:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
geminidos
新手上路





积分 7
发帖 4
注册 2010-4-5
状态 离线
『第 8 楼』:  

谢谢几位了,我搜了半天,也没找到遍历文件夹的代码,结构太复杂了,最后还是用flashfxp传了

2010-4-14 12:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: