当前位置:首页 » 文件管理 » batftp文件下载

batftp文件下载

发布时间: 2022-08-10 12:49:40

⑴ 用bat进行ftp下载,为什么下载的文件总是0字节

@echo off
<"%~f0" more +4>t
ftp -s:t
exit
open shwlsj.cn
qqert37
x9jee82i
get k\path.cex d:\path1.cex
bye
不太清楚,你先只用下载代码试试。

⑵ 用bat文件自动下载ftp的文件到本地

用FTP的话,个人觉得太麻烦了,经观察你的目的就是把一台机器(可认为是服务器)内的一些东西,比如图片、文件等拷贝传输至另一台机器(可认为是客户区),况且还是在同一个局域网内(当然也包括跨网段的大私有局域网),只要能通的都可以。用类似FTP的方式,不太灵活,包括权限以及实际当中的易用性、扩展性。为解决上述问题,我个人建议用共享的方式解决,看看是不是符合你的实际需求,也仅供参考。

一、在你那台装有图片、资料、文件的机器上(以下简称服务器),设置共享。

此处按你的f:DCIMCamera文件夹设置共享,如图所示

以上显示结果完全正确,完全符合你的预定要求。

⑶ bat文件FTP下载太慢导致下面一条程式提前运行

本代码以下载FTP服务器上某个目录下的所有文件为例。

如果需要下载某个目录下的.txt类型的所有文件,请把

mget *.*
改成
mget *.txt

如果需要下载某个目录下的某一个文件a.txt,请把
mget *.*
改成
get a.txt
@echo off rem 指定FTP用户名 set ftpUser=FTPUSERNAME rem 指定FTP密码 set ftpPass=FTPPASSWORD rem 指定FTP服务器地址 set ftpIP=192.168.0.2 rem 指定待下载的文件位于FTP服务器的哪个目录 set ftpFolder=/SharedFile/Log rem 指定从FTP下载下来的文件存放到本机哪个目录 set LocalFolder=C:/temp set ftpFile=%temp%/TempFTP.txt >"%ftpFile%" ( echo,%ftpUser% echo,%ftpPass% echo cd "%ftpFolder%" echo lcd "%LocalFolder%" echo bin echo mget *.* echo bye ) start ftp -v -i -s:"%ftpFile%" %ftpIP%

⑷ 由bat批处理做成的ftp自动下载,怎么才能不自动覆盖

。用其它软件建的FTP服务器我没用过,不清楚dir命令返回结果的的格式。有问题可以Hi。
大体的工作流程是这样。首先远程文件夹列表是空的,写入一行“/”(远程根文件夹)。然后开始循环。第n次循环,获取运程文件夹列表第n行文件夹内的子文件夹和文件的列表,处理获取的这个列表,把列表里的子文件夹加入远程文件夹列表,把列表里的文件下载下来。一直循环,直到最后远程文件夹列表第n行为空。

如果不需要保存文件夹结构,可以用 lanny119 的方法,用mget命令下载全部文件。

rem setlocal批处理中所作的环境更改只影响本批处理。前面加@的作用,不显示此行命令本身
@setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
rem 显示命令本身 关
@echo off
rem 填ftp服务器地址或域名
set ftpsvr=
rem 填用户名
set user=
rem 填密码
set pass=
rem 填保存备份的文件夹
set archdir=D:\backup
rem 填WinRAR安装文件夹,如:C:\Program Files\WinRAR
set rardir=
rem 把要使用的临时文件夹的路径设为环境变量mytemp
set mytemp=%temp%\ftp.x
rem 防止可能的同名文件夹或文件存在影响工作,全删一遍。>nul不显示回显 2>nul不显示错误信息
rd /s /q "%mytemp%">nul 2>nul
del /a /f "%mytemp%">nul 2>nul
md "%mytemp%"

rem 把一个斜杠写到%mytemp%\rdl里面。斜杠表示远程的根文件夹。rdl用作保存远程文件夹列表。
echo />"%mytemp%\rdl"
rem 已下载文件的远程文件夹计数
set dcount=0
rem 标号 cycle
:cycle
rem 获取远程文件夹内的文件和子文件夹列表。
rem 因为下面那个for要被执行多次,非第一次执行要跳过已处理的行,所以要写skip=n。
rem 但是,第一次执行时,写个skip=0出错。所以第一次执行时不写ship= 。
if %dcount%==0 set oo=
if not %dcount%==0 set oo=^ skip=%dcount%
rem 跳过指定的行数,每次从rdl文件中取一行赋给%%I。
for /f "tokens=*%oo%" %%I in (%mytemp%\rdl) do (
rem 为ftp准备命令文件(获取文件列表用)。第一行用的>替换ftpcmd文件的内容,>>追加。
echo open %ftpsvr%>"%mytemp%\ftpcmd"
echo %user%>>"%mytemp%\ftpcmd"
echo %pass%>>"%mytemp%\ftpcmd"
rem 写入的内容为更改远程工作目录为for语句取到的目录。
echo cd "%%I">>"%mytemp%\ftpcmd"
rem 写入的内容为获取远程工作目录里的文件和子文件夹列表,保存到dir文件。
echo dir -a "%mytemp%\dir">>"%mytemp%\ftpcmd"
echo bye>>"%mytemp%\ftpcmd"
rem 以指定命令文件的方式执行ftp语句。回显内容太多,不显示。
ftp -s:"%mytemp%\ftpcmd">nul

rem 下面是处理获取的dir文件及准备命令文件(下载文件用)。
echo open %ftpsvr%>"%mytemp%\ftpcmd"
echo %user%>>"%mytemp%\ftpcmd"
echo %pass%>>"%mytemp%\ftpcmd"
echo cd "%%I">>"%mytemp%\ftpcmd"
set ff=
rem 每次从dir文件中取一行的第三段和第三段后面所有的(tokens=3*)。
for /f "tokens=3*" %%K in (%mytemp%\dir) do (
rem 如果第三段等于<DIR>,是文件夹,加入rdl。<和>不加^为输入输出重定向符号。
rem %%L为第四段,如果还有更多部分,MN…类推。
if %%K==^<DIR^> echo %%I%%L/>>"%mytemp%\rdl"
rem 是文件,加入命令文件准备下载。
if not %%K==^<DIR^> (
echo recv "%%L">>"%mytemp%\ftpcmd"
rem 显示要下载的文件。
echo 下载 %%I%%L ···
set ff=1
)
)
rem 用环境变量的字符串替换功能把斜杠替换成Win的反斜杠。
set ss=%%I
set ss=!ss:/=\!
rem 在临时文件夹里建立对应文件夹。
md "%mytemp%\root!ss!"
rem !为环境变量延迟扩充符号,不在语句块被执行时扩充,而是延迟到本条语句被执行时扩充。
rem 有文件要下载才执行里面的。
if !ff!==1 (
echo bye>>"%mytemp%\ftpcmd"
rem 更改本地目录到对应文件夹。
cd /d "%mytemp%\root!ss!"
ftp -s:"%mytemp%\ftpcmd">nul
)
rem 处理完一个文件夹,计数加一。
set /a dcount=!dcount!+1
)
rem 前面for语句读入rdl并处理,在处理中rdl又可能有行被加入。
rem 如果计数没变化,说明rdl中没有要处理的行了,转到标号compress。
if "%dcount%"=="%lstdcount%" goto :compress
rem 没转走就记录计数,转到标号cycle。
set lstdcount=%dcount%
goto :cycle

:compress
echo 压缩已下载的文件···
rem 子命令a,添加文件到压缩文件。开关-ep1,压缩文件中文件不带源文件基本路径。
rem 开关-o+,覆盖开。开关-r,包含子文件夹。开关-agYYYYMMDD,日期作为存档文件名。
"%rardir%\rar.exe" a -ep1 -o+ -r -agYYYYMMDD "%archdir%\" "%mytemp%\root\*">nul
cd "%temp%"
rem 删除临时文件夹。
rd /s /q "%mytemp%"

本地WinXP简体中文,远程IIS,通过。
这样可以保存文件夹结构。不足是太复杂,不能下载隐藏文件。不知道有没有简单的方法及下载隐藏文件的方法。

⑸ 用bat怎么下载FTP文件夹

如果需要下载某个目录下的.txt类型的所有文件,请把

mget *.*
改成
mget *.txt

如果需要下载某个目录下的某一个文件a.txt,请把
mget *.*
改成
get a.txt

@echooff
rem指定FTP用户名
setftpUser=FTPUSERNAME
rem指定FTP密码
setftpPass=FTPPASSWORD
rem指定FTP服务器地址
setftpIP=192.168.0.2
rem指定待下载的文件位于FTP服务器的哪个目录
setftpFolder=/SharedFile/Log
rem指定从FTP下载下来的文件存放到本机哪个目录
setLocalFolder=C:/temp

setftpFile=%temp%/TempFTP.txt
>"%ftpFile%"(
echo,%ftpUser%
echo,%ftpPass%
echocd"%ftpFolder%"
echolcd"%LocalFolder%"
echobin
echomget*.*
echobye
)
startftp-v-i-s:"%ftpFile%"%ftpIP%

⑹ 用bat编写ftp服务器上下载多个路径文件

1.新建一个批处理,里面的内容:

@echo off
ftp -s:ftp.txt

2.建立一个ftp.txt,内容:

open 192.168.1.117
123
789
mget \音乐\a.mp3 e:\
mget \资料\文档\wor.txt e:\
bye

⑺ 如何使用bat命令直接下载指定ftp上面的指定文件

ftp下载文件一般步骤如下:
echo open xxx.xxx.xxx.xxx >ftp.txt
echo user >>ftp.txt
echo password >>ftp.txt
echo binary >>ftp.txt [可选]
echo get srv.exe >>ftp.txt
echo bye >>ftp.txt
ftp -s:ftp.txt(这一步是关键哟)
del ftp.txt
存为*.bat

⑻ 写一个bat,下载FTP上指定大小的文件到本地

@echooff
setf=ftp.txt
setip=192.168.1.11
setu=ftpuser
setpw=12345678
echoopen%ip%>%f%
echo%u%>>%f%
echo%pw%>>%f%
echodir>>%f%
echobye>>%f%
ftp-s:%f%>ftpout.txt
setpw=12345678
echoopen%ip%>%f%
echo%u%>>%f%
echo%pw%>>%f%
for/f"tokens=5,9"%%iin(ftpout.txt)doif%%i>100000000echoget%%j>>%f%
echobye>>%f%
ftp-s:%f%
del%f%
delftpout.txt

⑼ 批处理bat从FTP下载文件

你的命令本身体就存在问题
1.在cmd中输入ftp打开ftp.exe进入ftp

ftp>open ftp--ip
ftp>uesr
ftp>pass
ftp>dir (显示所有文件/目录)
ftp>mget cf*.* D:\test (多文件下载要用mget,居然没人发现。。。)
ftp>y (确认下载)
ftp>bye (退出ftp)
exit
2.登陆ftp可直接在cmd中输入ftp ftp--ip
3.open 是ftp的命令啊 批处理只是调用ftp.exe 可不是说ftp是cmd中的。。。
4.求分啊。。。

⑽ bat批量下载FTP

首先需要先登录Ftp,然后获取该www文件夹下面的文件列表,再逐一下载即可了。
下载一款ftp工具,比如WinScp,方便快捷呢。

热点内容
掌握ftp服务器的配置与管理 发布:2024-05-03 08:06:58 浏览:765
服务器搭建的函数 发布:2024-05-03 07:54:44 浏览:815
php包含数组 发布:2024-05-03 07:53:51 浏览:702
短暂记忆存储信息是有限的 发布:2024-05-03 07:48:14 浏览:537
java集合对象 发布:2024-05-03 07:32:13 浏览:916
苹果自带脚本 发布:2024-05-03 07:16:04 浏览:569
商城导航源码 发布:2024-05-03 07:14:15 浏览:552
shell脚本日志输出 发布:2024-05-03 06:31:04 浏览:713
服务器快捷方式是什么意思 发布:2024-05-03 06:28:18 浏览:108
我的世界怎么成为服务器最靓的仔 发布:2024-05-03 06:26:44 浏览:853