中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-26 08:56
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » ftp怎样批量上传? 查看 1,449 回复 7
楼 主 ftp怎样批量上传? 发表于 2010-04-06 13:20 ·  中国 北京 朝阳区 联通
新手上路
积分 7
发帖 4
注册 2010-04-05 07:31
16年会员
UID 163800
性别 男
状态 离线
要将本地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

后面就不会了。。。。
2 发表于 2010-04-08 16:11 ·  中国 广东 深圳 电信
初级用户
★★
游手好闲 + 无所事事 ..
积分 194
发帖 167
注册 2007-04-30 09:43
19年会员
UID 87022
性别 男
状态 离线
ftp下上传是put命令,下载是get吧,很久没用忘记了,应该是这个。

你搜索一下 ftp.exe 的帮助文件。另外有个要注意的地方,密码最好不要有空格,另外可能会遇到密码之后不继续的问题,很容易解决,
echo %ftpPassword%>>ftp.tmp
修改成
echo %ftpPassword% >>ftp.tmp
password后面加多一个空格就可以当回车来用了。
3 发表于 2010-04-09 22:55 ·  中国 湖北 武汉 鹏博士宽带
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线
ftp -s:filename
4 发表于 2010-04-10 08:28 ·  中国 北京 丰台区 联通
新手上路
积分 7
发帖 4
注册 2010-04-05 07:31
16年会员
UID 163800
性别 男
状态 离线
俄,又学到知识了,感谢二楼,版主大人,-s可以批量上传么?文件夹也可以?
5 Re 4 楼 发表于 2010-04-10 14:06 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
需要自己写代码遍历文件夹
6 发表于 2010-04-11 06:32 ·  中国 台湾 台湾宽频通讯顾问股份有限公司
初级用户
★★
积分 68
发帖 64
注册 2009-05-23 20:43
17年会员
UID 145803
性别 男
状态 离线
我也有批量上传需求 (遍历文件夹),但搜寻不到,是否可以帮忙搜寻或提供代码,谢谢
7 发表于 2010-04-12 11:21 ·  中国 广东 深圳 电信
初级用户
★★
游手好闲 + 无所事事 ..
积分 194
发帖 167
注册 2007-04-30 09:43
19年会员
UID 87022
性别 男
状态 离线
给你个例子吧,很久以前写的了,那时候还不熟,所以有很多绕来绕去的地方,而且两个文件实际可以合写成一个,有些地方可以模块化处理。

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

当时的目的是,运行程序后能连接到公司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 ]
8 发表于 2010-04-14 12:53 ·  中国 北京 丰台区 联通
新手上路
积分 7
发帖 4
注册 2010-04-05 07:31
16年会员
UID 163800
性别 男
状态 离线
谢谢几位了,我搜了半天,也没找到遍历文件夹的代码,结构太复杂了,最后还是用flashfxp传了
论坛跳转: