ftp脚本windows
❶ 用批处理将ftp文件备份,使用window下的bat
可能我这个批处理只能用于运行IIS的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,通过。
这样可以保存文件夹结构。不足是太复杂,不能下载隐藏文件。不知道有没有简单的方法及下载隐藏文件的方法。
❷ 如何利用windows 7搭建ftp服务器
Windows 7操作系统中可参考以下步骤搭建FTP服务器:
1、打开控制面板->程序,选择“打开或关闭Windows功能”;
❸ 如何将windows搭建ftp 软件
大家都是到现在局域网应用很普遍,在Win7下如果我们想在单位或是家庭通过局域网来共享文件,怎么通过网线来实现文件互访呢,在win7系统中有一个全新的功能我们可以自己搭建FTP服务器来实现文件共享。下面就来一起学习下Win7FTP服务器搭建过程。步骤1、控制面板-程序-打开或关闭Windows功能,或者在开始菜单里搜索"打开或",弹出Windows功能窗口,勾选Internet信息服务下的FTP功能和Web管理工具,以此开启服务。点击确定后,需要等几分钟。
温馨提示:必须选中Web管理工具而且全部展开选中,否则仅仅开启FTP功能无法继续调用IIS管理器
步骤2、在控制面板-系统和安全-管理工具,或直接在开始菜单搜索"Internet信息服务(IIS)管理器"。
温馨提示:只有进行了上一步打开功能的操作后,管理工具才会出现这一项,否则开始菜单搜索也是无法搜索到的。
步骤3、打开ISS管理器,右键点击你的服务器,选择"添加FTP站点"。
步骤4、再添加你的FTP站点名称、选择你要共享的路径。
步骤5、在下拉菜单中选择你内网的IP作为IP地址,端口默认。勾选"自动启动FTP站点,SSL选择无或允许皆可。"
步骤6、选择匿名访问,根据需求选择允许访问的用户。根据需求选择是否允许读取、写入。
温馨提示:一般情况下Win7用户上传到在Win7下自建的Ftp服务器文件超过30MB,Win7服务器会因为负荷太重导致掉线,可能由于Win7的优先级太高,传输时占用了服务器的所有带宽而导致服务器资源耗尽。所以尽量选择不允许写入。
在Win7下搭建FTP服务器后,就可以实现计算机中的文件共享,方便又便携。
❹ windows命令行怎么使用ftp
1、首先,同时按下快捷键
Win+R,调出运行窗口,然后在运行窗口中输入
FTP,回车。
2、这时,将会打开
FTP
命令行窗口。在命令行窗口中输入以下命令并回车,以便连接到服务器open
服务器地址。
3、连接到服务器后,输入FTP用户名并回车。
4、然后,再输入FTP密码并回车,在此注意,输入密码时不会有任何提示。
5、如果用户名和密码都正确无误,网络也没有问题,很快便会出现登陆成功的提示信息。
❺ windows下ftp脚本 我参考网上的一些例子,写了以下两个脚本,可是系统总是循环执行第一句
名字不能叫ftp.bat,换一个别的名字!
❻ ftp传输 windows xp定时文件传输
创建一个文本文件内容如下:
open FTP服务器IP
user //用户名
password //密码
binary(ascii)* 注 文本文件用axcii二进制文件用binary
cd 后面跟目录名 进入要备份文件所在的目录
get 文件名 要下载的文件
bye
保存后改名为ftp.ftp
新建BAT文件内容如下:
ftp -s:ftp.ftp
将ftp.ftp和该BAT文件存放在同一目录下
创建计划任务定时执行该BAT文件
❼ Windows端有哪些FTP客户端软件值得推荐
Windows端有哪些FTP客户端软件值得推荐?
Filezilla
FileZilla是一个免费的 FTP 客户端软件,虽然它是免费软件,可功能却一点也不含糊,比起那些共享软件来有过之而无不及,在新的版本中作者改进了手动下载的界面和功能等,不过该软件暂时还是不支持断点续传功能。总的来说是一款优秀的免费软件。
功能介绍:
1、易于使用
2、支持FTP, FTP并支持SSL/TLS (FTPS)协议,支持SSH文件传输协议(SFTP)
3、跨平台。在 Windows, Linux, *BSD, Mac OS X 和其它平台下运行 more
4、支持IPv6协议
5、多种可用的语言(包含中文)
6、断点续传且支持容量大于4GB的文件
7、多标签用户界面
8、功能强大的站点管理器(Site Manager)和传输队列管理
9、书签功能
10、拖拽功能支持
11、支持传输限速功能
12、文件名过滤器
13、文件夹比较功能
14、网络设置向导
15、远程文件编辑功能
16、保持链接功能
17、支持HTTP/1.1, SOCKS5 和 FTP代理(FTP-Proxy)
18、登录到文件功能
19、同步文件夹浏览
20、远程查找文件
❽ 如何制作windows的ftp批处理程序
打开记事本,输入类似以下一段代码然后保存为ftp.bat,以后双击运行就能把tobedownloaded.rmvb下载成c盘的ok.rmvb。
1.需ftp帐户密码才能登录:
@echo off
echo open www.ftpaddress.com>ftp.txt
echo username>>ftp.txt
echo password>>ftp.txt
echo get serverfilepath\tobedownloaded.rmvb c:\ok.rmvb>>ftp.txt
echo bye>>ftp.txt
ftp -s:ftp.txt
del ftp.txt
2.匿名就能登录:
@echo off
echo open www.ftpaddress.com>ftp.txt
echo get serverfilepath\tobedownloaded.rmvb c:\ok.rmvb>>ftp.txt
echo bye>>ftp.txt
ftp -s:ftp.txt -A
del ftp.txt
当然你也可以直接手动建立ftp.txt文件,内容是:(如匿名就能登录的情况)
open www.ftpaddress.com
get serverfilepath\tobedownloaded.rmvb c:\ok.rmvb
bye
然后你只需在与ftp.txt同文件夹下ftp.bat文件里面输入下面代码即可:
ftp -s:ftp.txt -A
【原理】上面方法都是通过直接执行ftp.bat来间接执行ftp.exe(ftp.txt提供命令参数)从而完成访问ftp站点并下载文件的,其中ftp.exe是系统所有,ftp.bat和ftp.txt是用户创建。
❾ 求一个windows下从FTP下载所有文件到指定目录的脚本或批处理,并删除源头FTP下的文件
@echo off
(echo open 192.168.1.1 18080
echo admin
echo admin
echo prompt
echo lcd d:\ftpfile
echo mget *
echo mdelete *
echo bye)>ftp.txt
ftp -s:ftp.txt