将文件夹上传至ftp服务器的批处理程序怎么写

我一个文件夹下面有很多子文件夹,怎么样一次上传到FTP服务器?不是一个一个文件夹的创建然后上传的方法。要求必须是用windows的ftp命令,我知道上传一个文件可以用ft... 我一个文件夹下面有很多子文件夹,怎么样一次上传到FTP服务器?不是一个一个文件夹的创建然后上传的方法。
要求必须是用windows的ftp命令,我知道上传一个文件可以用ftp -s:"上传命令.txt"

上传命令.txt内容是

open *.*.*.*
user
password
put *

但是上传多个文件夹的呢?
展开
 我来答
xclimbing
推荐于2017-11-25 · TA获得超过1835个赞
知道大有可为答主
回答量:3040
采纳率:100%
帮助的人:2069万
展开全部
下文中用upload.txt代替”上传命令.txt“,仅仅为了书写方便。

@echo off
> upload.txt echo open *.*.*.*
>>upload.txt echo user
>>upload.txt echo password
>>upload.txt echo prompt
>>upload.txt echo mput *
for /f "tokens=*" %%i in ('dir /ad/s/b') do (echo mkdir "%%i" >> upload.txt
echo cd "%%i" >> upload.txt
echo lcd "%%i" >> upload.txt
echo mput * >> upload.txt
echo lcd >> upload.txt)

总之,用微软这个弱智的ftp命令确实是挺恶心的,还是建议用lftp或者ncftp这一类功能更强的工具。
追问
for /f "tokens=*" %%i in ('dir /ad/s/b') do (echo mkdir "%%i"

运行这句,会提示“此时不应有 %%i。”,%%i是什么意思啊?
追答
要放到批处理中运行,不能单独在命令行中执行。%%i表示循环变量,这里代表每个目录。
缓步莫迟疑C
2012-11-13 · TA获得超过1.1万个赞
知道大有可为答主
回答量:6217
采纳率:73%
帮助的人:6430万
展开全部
你可以试试用命令行调用一个FTP客户端,将要上传的目录以命令行参数传递给该程序,由它来完成所有子目录的同步.或者去找一个叫NcFTP的命令行FTP客户端,它可以通过命令行参数完成整个目录的上传下载工作.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sudoku52
2012-11-14 · TA获得超过7万个赞
知道大有可为答主
回答量:1.2万
采纳率:82%
帮助的人:4775万
展开全部
@echo off
echo open 192.168.1.10>ftp.txt
echo user>>ftp.txt
echo password>>ftp.txt
echo prompt>>ftp.txt
echo mput *>>ftp.txt
for /f "tokens=*" %%i in ('dir/s/b/ad') do (
echo mkdir "%%~ni" >>ftp.txt
echo cd "%%~ni" >>ftp.txt
echo lcd "%%i" >>ftp.txt
echo mput * >>ftp.txt
echo cd ..>>ftp.txt)
ftp -s:ftp.txt
追问
运行for /f "tokens=*" %%i in ('dir/s/b/ad') do (
echo mkdir "%%~ni"
会提示会提示“此时不应有 %%i。”,%%i是什么意思啊?
追答
这个要粘贴到记事本,保存为.bat文件运行才可以。
如果直接在cmd窗口下运行,把双%替换成单%才可以。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式