Bat脚本处理ftp超强案例分析
windows批处理脚本(batcmd)实例教程 专题文章

Windows批处理脚本(BAT、CMD)实例教程专题文章这是一篇技术教程,真心诚意会用很简单的文字表达清楚自己的意思,只要你识字就能看懂,就能学到知识。
写这篇教程的目的,是让每一个看过这些文字的朋友记住一句话:如果爱可以让事情变的更简单,那么就让它简单吧!看这篇教程的方法,就是慢!慢慢的,如同品一个女人、一杯茗茶,你会发现很多以前就在眼前的东西突然变的很遥远,而有些很遥远的东西却又突然回到了眼前。
.先概述一下批处理是个什么东东。
批处理的定义,至今我也没能给出一个合适的----众多高手们也都没给出----反正我不知道----看了我也不一定信服----我是个菜鸟,当然就更不用说了;但我想总结出一个“比较合适的”,而且我也相信自己可以把它解释的很清楚,让更多的菜鸟都知道这是个什么东东,你用这个东东可以干什么事情。
或许你会因为这篇文章而“无条件爱上批处理”,那么我的目的就达到了----我就是要让你爱上它,我就这么拽,你能怎么着??真的,爱有时候就这么拽,就是这么没理由,就是这么不要脸!真的!按照我的理解,批处理的本质,是一堆DOS命令按一定顺序排列而形成的集合。
OK,never claver and get to business(闲话少说言归正传)。
批处理,也称为批处理脚本,英文译为BATCH,批处理文件后缀BAT就取的前三个字母。
它的构成没有固定格式,只要遵守以下这条就ok了:每一行可视为一个命令,每个命令里可以含多条子命令,从第一行开始执行,直到最后一行结束,它运行的平台是DOS。
批处理有一个很鲜明的特点:使用方便、灵活,功能强大,自动化程度高。
我不想让自己写的教程枯燥无味,因为牵缠到代码(批处理的内容算是代码吧?)的问题本来就是枯燥的,很少有人能面对满屏幕的代码而静下心来。
所以我会用很多简单实用的例子让读这篇教程的朋友去体会批处理的那四射的魅力,感受它那古灵精怪的性格,不知不觉中爱上批处理(晕,怎么又是爱?到底批处理和爱有什么关系?答案:没有!)。
一篇不错的批处理bat学习教程

一篇不错的批处理bat学习教程批处理,也称为批处理脚本,批处理文件后缀BAT就取的前三个字母。
它的构成没有固定格式,只要遵守以下这条就ok了:每一行可视为一个命令,每个命令里可以含多条子命令,从第一行开始执行,直到最后一行结束,它运行的平台是DOS。
批处理有一个很鲜明的特点:使用方便、灵活,功能强大,自动化程度高。
要学好批处理,DOS基础一定要牢!当然脑子灵活也是很重要的一方面。
例一、先给出一个最easy的批处理脚本让大家和它混个脸熟,将下面的几行命令保存为name.bat然后执行(以后文中只给出代码,保存和执行方式类似):[复制此代码]CODE:@echo offping > a.txtping >> a.txtping >> a.txtping >> a.txtping >> a.txtping >> a.txtping >> a.txtping >> a.txtecho 按任意键退出...pause >nul是不是都能看的懂?是不是很easy?但它的作用却是很实用的,执行这个批处理后,可以在你的当前盘建立一个名为a.txt的文件,它里面记录的信息可以帮助你迅速找到速度最快的QQ服务器,从而远离“从服务器中转”那一痛苦的过程。
这里>>的意思,是把前面命令得到的东西放到后面所给的地方,>>的作用,和>的相同,区别是把结果追加到前一行得出的结果的后面,具体的说是下一行,而前面一行命令得出的结果将保留,这样可以使这个a.txt 文件越来越大(想到如何搞破坏了??)。
By the way,这个批处理还可以和其他命令结合,搞成完全自动化判断服务器速度的东东,执行后直接显示速度最快的服务器IP,是不是很爽?后面还将详细介绍。
例二、再给出一个已经过时的例子(a.bat):[复制此代码]CODE:@echo offif exist C:Progra~1TencentAD*.gif del C:Progra~1TencentAD*.gifecho 按任意键退出...pause >nul为什么说这是个过时的例子呢?很简单,因为现在已经几乎没有人用带广告的QQ了,所以它几乎用不上了。
Bat批处理命令使用教程(完整篇)

Bat批处理命令使用教程(完整篇) 安全中国 更新时间:2007-9-14 7:58:30 责任编辑:阿loosen热点:这是一篇技术教程,我会用很简单的文字表达清楚自己的意思,你要你识字就能看懂,就能学到知识。
写这篇教程的目的,是让每一个看过这些文字的朋友记住一句话:如果爱可以让事情变的更简单,那么就让它简单吧!看这篇教程的方法,就是慢!慢慢的,如同品一个女人、一杯茗茶,你会发现很多以前就在眼前的东西突然变的很遥远,而有些很遥远的东西却又突然回到了眼前。
先概述一下批处理是个什么东东。
批处理的定义,至今我也没能给出一个合适的----众多高手们也都没给出----反正我不知道----看了我也不一定信服----我是个菜鸟,当然就更不用说了;但我想总结出一个‚比较合适的‛,而且我也相信自己可以把它解释的很清楚,让更多的菜鸟都知道这是个什么东东,你用这个东东可以干什么事情。
或许你会因为这篇文章而‚无条件爱上批处理‛,那么我的目的就达到了----我就是要让你爱上它,我就这么拽,你能怎么着??真的,爱有时候就这么拽,就是这么没理由,就是这么不要脸!真的!按照我的理解,批处理的本质,是一堆DOS命令按一定顺序排列而形成的集合。
OK,never claver and get to business(闲话少说言归正传)。
批处理,也称为批处理脚本,英文译为BATCH,批处理文件后缀BAT就取的前三个字母。
它的构成没有固定格式,只要遵守以下这条就ok了:每一行可视为一个命令,每个命令里可以含多条子命令,从第一行开始执行,直到最后一行结束,它运行的平台是DOS。
批处理有一个很鲜明的特点:使用方便、灵活,功能强大,自动化程度高。
我不想让自己写的教程枯燥无味,因为牵缠到代码(批处理的内容算是代码吧?)的问题本来就是枯燥的,很少有人能面对满屏幕的代码而静下心来。
所以我会用很多简单实用的例子让读这篇教程的朋友去体会批处理的那四射的魅力,感受它那古灵精怪的性格,不知不觉中爱上批处理(晕,怎么又是爱?到底批处理和爱有什么关系?答案:没有!)。
批处理bat详细教程完整版

批处理bat详细教程完整版一、交互界面设计没啥说的,看看高手设计的菜单界面吧:@echo offclstitle 终极多功能修复:menuclscolor 0Aecho.echo ============================== echo 请选择要进行的操作,然后按回车echo ============================== echo.echo 1.网络修复及上网相关设置,修复IE,自定义屏蔽网站echo. echo 2.病毒专杀工具,端口关闭工具,关闭自动播放echo. echo 3.清除所有多余的自启动项目,修复系统错误echo. echo 4.清理系统垃圾,提高启动速度echo.echo Q.退出echo.echo.:choset choice=set /p choice= 请选择:IF NOT "%choice%"=="" SET choice=%choice:~0,1%if /i "%choice%"=="1" goto ipif /i "%choice%"=="2" goto setsaveif /i "%choice%"=="3" goto kaijiif /i "%choice%"=="4" goto cleanif /i "%choice%"=="Q" goto enddecho 选择无效,请重新输入echo.goto cho只要学完本教程前面的章节,上面的程序应该能看懂了。
二、if…else…条件语句前面已经谈到,DOS条件语句主要有以下形式IF [NOT] ERRORLEVEL number commandIF [NOT] string1==string2 commandIF [NOT] EXIST filename command增强用法:IF [/I] string1 compare-op string2 command增强用法中加上/I就不区分大小写了!增强用法中还有一些用来判断数字的符号:EQU - 等于NEQ - 不等于LSS - 小于LEQ - 小于或等于GTR - 大于GEQ - 大于或等于上面的command命令都可以用小括号来使用多条命令的组合,包括else子句,组合命令中可以嵌套使用条件或循环命令。
BAT批处理脚本教程

BAT批处理脚本教程第⼀章批处理基础第⼀节常⽤批处理内部命令简介批处理定义:顾名思义,批处理⽂件是将⼀系列命令按⼀定的顺序集合为⼀个可执⾏的⽂本⽂件,其扩展名为BAT或者CMD。
这些命令统称批处理命令。
⼩知识:可以在键盘上按下Ctrl+C组合键来强⾏终⽌⼀个批处理的执⾏过程。
了解了⼤概意思后,我们正式开始学习.先看⼀个简单的例⼦!@echo offecho "欢迎来到⾮常BAT!"pause把上⾯的3条命令保存为⽂件test.bat或者test.cmd然后执⾏,他就会在屏幕上显⽰以下⼆⾏话:欢迎来到⾮常BAT!请按任意键继续. . .这就是⼀个简单批处理⽂件了,这个批处理⽂件⼀共就⽤了2条命令 "echo" 和"pause" 还有⼀个特殊符号"@"从上⾯这个简单的批处理中,我们可以发现其实批处理就是运⽤⼀些含有特殊意义的符号和⼀些完成指定功能的命令组合⽽成,那么在批处理中有多少这样的特殊符号和功能命令呢?我们现在就来仔细了解⼀下⼀些最常⽤的!(以下内容来源⽹络,请各位仔细阅读,好进⼊下节的实例说明)======================================================批处理的常见命令(未列举的命令还⽐较多,请查阅帮助信息)1、REM 和 ::2、ECHO 和 @3、PAUSE4、ERRORLEVEL5、TITLE6、COLOR7、mode 配置系统设备8、GOTO 和 :9、FIND10、START11、assoc 和 ftype12、pushd 和 popd13、CALL14、shift15、IF16、setlocal 与变量延迟17、ATTRIB 显⽰或更改⽂件属性介绍命令1、REM 和 ::REM为注释命令,⼀般⽤来给程序加上注解,该命令后的内容不被执⾏,但能回显。
其次, :: 也可以起到rem 的注释作⽤, ⽽且更简洁有效; 但有两点需要注意:第⼀, 任何以冒号:开头的字符⾏, 在批处理中都被视作标号, ⽽直接忽略其后的所有内容。
FTP服务器应用案例

FTP 服务器应用案例某公司内部现有一台 FTP 和 WEB 服务器,FTP 的功能主要用于维护公司网站:创建目录、上传文件、更新网页等。
公司决定由账号为 webtom 和 webzhou 的 2个用户分别进行管理公司的网站。
要求:仅允许 webtom 和 webzhou 登录 FTP 服务器,但不能登录本地系统,并将这两个账号的根目录限制在网站的根目录 /var/www/html ,不能进入该目录以外的任何目录。
附加 FTP 目录欢迎信息![分析]将 FTP 和 Web 服务器做在一起是企业经常采用的方法,这样方便实现对网站的维护,为了增强安全性,首先需要使用仅本地用户访问(不允许匿名用户登录)。
方案要求将 webtom 和 webzhou 的登录锁定在公司的网站的根目录 /var/www/html 下,因而webtom 和 webzhou 要在/var/www/html 中具有上传权限(写文件)和删除权限(修改和删除网站中过期或错误信息)。
为了管理上的安全,webtom 和 webzhou 仅可作为FTP 中的本地用户,也不能以其他形式(在服务器本机或telnet 远程登录)登录。
步骤 1:(由 root 用户)建立可以登录 FTP 服务器的 2个用户, webtom 和 webzhou ,并禁止本地登录。
可以从命令方式或图形界面中建立用户。
其中 /sbin/nologin 是用户登录 shell 名。
图形界面操作过程请参见图1、图2,最后效果如图3所示。
命令序列 useradd –s /sbin/nologin webtom useradd –s /sbin/nologin webzhou passwd webtom passwd webzhou[配置过程]图1 图形界面中新建立用户webzhou图2 新建Linux 系统的本地用户webtom步骤 2:(由 root 用户)编辑 /etc/vsftpd/vsftpd.conf 文件,并作相关的修改。
用 bat 批处理 实现自动telnet
一般来说ftp做batch处理事务时非常常见的事情。
那么如果Batch telnet,让我们的管理工作更加的轻松呢?一般来说两种方法:1、VBS法(Windows Script Host)2、自动终端法(一些可以配置自动telnet的终端)在这里我们讨论第一种方法:VBS法。
由于Windows Script Host是系统自带的,我们不需要安装地方放软件就可以搞定。
所以它一般是解决问题的首选。
首先,我们建立一个名字叫做tel.vbs的脚本,这里用telnet 到cisco路由器上作为一个例子,相关内容大家可以修改。
'建立Shell对象set sh=WScript.CreateObject("WScript.Shell")WScript.Sleep 1000'向telnet发送我们平时录入的命令sh.SendKeys "open 192.168.1.1"WScript.Sleep 1000sh.SendKeys "{ENTER}"WScript.Sleep 1000sh.SendKeys "password{ENTER}"WScript.Sleep 1000sh.SendKeys "en{ENTER}"WScript.Sleep 1000sh.SendKeys "passord{ENTER}"WScript.Sleep 1000'运行cisco的show run命令sh.SendKeys "show run{ENTER}"然后,建立一个batch_tel.bat的批处理文件:rem 启动telnetstart telnet.exerem batch telnetcscript //nologo tel.vbs最后,我们只需要运行batch_tel.bat就可以轻松搞定telnet的工作了。
shell操作典型案例--FTP操作
shell操作典型案例--FTP操作从FTP服务器上下载⽂件或上传⽂件到FTP服务器是⽣产环境中⽐较常见的场景之⼀。
shell操作FTP的⽅式整理如下:思路⼀:使⽤shell调⽤ftp等客户端 使⽤FTP⽅式,通过shell调⽤ftp等客户端,从⽽完成FTP⽂件的上传、下载等操作。
⽅式⼀:ftp⽅式⼀个基本的ftp⼯具,需安装ftp(yum -y install ftp,后同)。
⼀个样例如下:#############################################################函数功能:FTP上传、下载多个⽂件、单个⽂件##使⽤⽰例:## DownloadFiles #直接调⽤,不记录⽇志## #记录⽇志,将输出追加到⽇志⽂件即可## 可以根据需要,在⽂件名、⽬录名等处拼接⽇期、批次号等内容。
###########################################################IP="" #FTP服务器地址PORT="" #FTP端⼝号USER="" #FTP⽤户名PWD="" #FTP⽤户密码REMOTE_DIR="" #远程FTP服务器⽬录LOC_DIR="" #对应的本地服务器⽬录DEST_FILES="" #远程FTP服务器⽂件DownloadFiles(){ftp -ivn << EOF #-n 不受.netrc⽂件的影响,表⽰禁⽌⾃动登录到初始连接(ftp默认为读取.netrc⽂件中的设定)#-i表⽰在多个⽂件传输期间关闭交互提⽰#-vopen $IP $PORTuser $USER $PWDbin #bin等价于bi,binary等,表⽰以⼆进制⽅式传输,另⼀种⽅式是ascii#passive表⽰设置为被动模式的FTP#prompt#被动模式的FTP通常⽤在处于防⽕墙之后的FTP客户访问外界FTP服务器的情况.#主动模式的FTP是指服务器主动连接客户端的数据端⼝,被动模式的FTP是指服务器被动地等待客户端连接⾃⼰的数据端⼝#被动模式的FTP通常⽤在处于防⽕墙之后的FTP客户访问外界FTP服务器的情况.#因为在这种情况下,防⽕墙通常配置为不允许外界访问防⽕墙之后主机,⽽只允许由防⽕墙之后的主机发起的连接请求通过.#因此在这种情况下不能使⽤主动模式的FTP传输,⽽被动模式的FTP可以良好的⼯作.cd $REMOTE_DIRlcd $LOC_DIRmget $DEST_FILES #多个⽂件的下载#get $DEST_FILE_NAME $LOC_FILE_NAME #单个⽂件的下载closequit #或byeEOF}UploadFiles(){ftp -ivn << EOFopen $IP $PORTuser $USER $PWDbin#passive 可选cd $REMOTE_DIRlcd $LOC_DIRmput $DEST_FILES #多个⽂件的上传#put $LOC_FILE_NAME $DEST_FILE_NAME #单个⽂件的上传closequitEOF}⽅式⼆:sftp⽅式 sftp是⼀款交互式的⽂件传输程序,命令的运⾏和使⽤⽅式与ftp命令相似,但是,sftp命令对传输的所有信息使⽤ssh加密,它还⽀持公钥认证和压缩等功能,安全性更好。
BAT批处理命令使用实用教程
BAT批处理命令使用实用教程BAT批处理命令是Windows操作系统自带的一种脚本语言,通过编写批处理脚本可以实现一系列自动化的操作,提高工作效率。
本教程将介绍BAT批处理命令的常用语法和实用技巧,帮助读者快速掌握BAT批处理命令的应用。
一、基本语法1.注释:在批处理脚本中,可以使用REM关键字添加注释,注释内容将被忽略。
示例:REM这是一个注释2.变量:在批处理脚本中,可以使用变量来保存值。
变量名以一个英文字母开头,后续可以有字母、数字和下划线。
示例:SET name=JohnECHO %name%3.输入输出:使用ECHO命令可以在屏幕上输出文本,使用SET/P命令可以从用户处输入值。
示例:ECHO HelloSET /P name=Please enter your name:4.条件判断:使用IF命令可以根据条件执行不同的操作。
示例:IF %num% EQU 1ECHO The number is 1ELSEECHO The number is not 15.循环:使用FOR命令可以实现循环操作,常用的有FOR/F和FOR/R。
示例:FOR /F %%G IN (file.txt) DOECHO%%G二、实用技巧1.执行命令:使用CALL命令可以执行其他批处理脚本或外部命令。
示例:CALL script.batCALL dir2.文件操作:使用COPY命令可以复制文件,使用DEL命令可以删除文件。
示例:COPY file1.txt file2.txt3.目录操作:使用CD命令可以切换目录,使用MKDIR命令可以创建目录。
示例:CD C:\pathMKDIR new_dir4.网络操作:使用PING命令可以测试网络连接,使用NET命令可以管理网络。
示例:NET USE \\server\share5. 系统信息:使用VER命令可以查看Windows版本,使用TIME和DATE命令可以查看当前时间和日期。
bat批处理:bat批处理教程(三)
如有你有帮助,请购买下载,谢谢! 1页 bat批处理:bat批处理教程(三)
学过汇编或C朋友肯定都知道call指令表示什么意思了在这里它意思其实也是样在批处理脚本中call命令用来从个批处理脚本中另个批处理脚本看例 8(默认 3个脚本文件名分别为start.bat、10.bat和ipc.bat): start.bat: …… CALL 10.BAT 0 …… 10.bat: …… ECHO %IPA%.%1 >HFIND.TMP …… CALL ipc.bat IPCFind.txt ipc.bat: for /f "tokens=1,2,3 delims= " %%i in (%1) do call HACK.bat %%i %%j %%k 有没有看出什么不对地方?没看出来啊?没看出来就对了其实就没有不对地方嘛你如何看出来!从上面两个脚本你可以得到如下信息: 1、脚本可以灵活运用循环运用、重复运用 2、脚本可以使用参数!有关第点就不多说了聪明你看就应该会这里说下第 2点 在start.bat中10.bat后面跟了参数0在执行时效果其实就是把10.bat里参数%1用0代替在start.bat中ipc.bat后面跟了参数ipcfind.txt(个文件也可以做参数)执行时效果就是用ipc.bat中每行 3个变量(这里不懂没关系学过for命令后就懂了)对应代换ipc.bat中%%i、%%j和%%k这里参数是非常灵活使用时需要好好体会在初学期间可以先学习只脚本至于连脚本参数起使用情况在后面学习中自然就会有比较深刻理解这是当你已经可以灵活运用批处理脚本后如何使代码写更精简更完美更高效就自然包括到了考虑范围这时候你就会发现在脚本时直接加入参数可以使代码效率加倍By the way上面这几个脚本都是 那是不是说在同个目录下至少存在两个批处理脚本文件(只有个你谁?)?呵呵注意了这句话错了!!只有个照样可以----自身!看例 9(默认脚本文件名a.bat): net send %1 This is a call example. call a.bat 这两句结合效果自然不如何样只有台机器来发消息谁怕谁啊?我给你来个礼尚往来!可如果有100台机器同时执行而且每台机器开10和窗口同时向个目标机器发消息话呵呵这里call a.bat作用就是自身执如有你有帮助,请购买下载,谢谢! 2页 行完前句net send命令后再自身达到了循环执行目的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Bat脚本处理ftp超强案例分析 前言: 公司有几百台windows服务器,每次程序更新,如果是一台台拷数据,只怕安排十个人,一天都不一定做得完,所以就必须研究个全自动更新方案来,于是就想到了FTP,做个主FTP站,在几百台客户机上启动BAT脚本,每30秒检测一次,如果主站有更新程序,就自动下载更新,几分钟内,上400台windows服务器,都可以全自动更新程序完毕,相当实用,现把当初研究BAT的脚本思路贴出来,希望对大批量运维人员一个方向。当然,批量更新服务器,每个公司有它自己的解决办法,这个BAT的方式不是最优的,可以用shell,可以用perl,也可以用python等脚本解决。
一、FTP命令说明 1、在windows系统中因为FTP是一个程序,如果在bat脚本中直接调用FTP的命令,在执行时总会弹出命令行窗口,循环在>FTP光标这,所以要换种方式,利用-S:filename,更多的命令请输入-h查看。 2、FTP登录成功后,需要下载远程单个文件时,使用get命令,如果下载多个文件时,用mget,它支持通配符,在使用mget时,需要对每一个文件都进行选择Y/N,如果想不交互的下载全部的文件,可以输入一次prompt命令关闭交互方式。
Mput和mget命令要注意两个问题: Ⅰ、不能对目标文件指定命字,在命令行上所有的文件都视做源文件 Ⅱ、mput,mget两个命令不能对目录进行上传与下载,只能对文件 Ⅲ、Prompt:每次执行一个这个命令,就在on ,off之间循环,ftp脚本开始时,prompt默认为on,所以一般在上传、下载文件时,执行一次prompt,把交互式的on关掉,变为off。
3、文件的传输方式: Binary ,二进制传输 Ascii ,ascII传输 在FTP文件传输过程中,ASCII传输HTML和文本编写的文件,而二进制码传输可以传送文本和非文本(执行文件,压缩文件,图片等),具有通用性,二进制码传输速度比ASCII传输要快,所以在建立bat脚本时,一般输入bin命令,启用二进制传输。如果用ASCII模式传输非文本文件,可能会显示一堆乱码,如果是上传一些CGI脚本,有可能将无法运行这类脚本,而在浏览器上看到server 500 error的错误。
Ascii和binary模式的区别是回车换行的处理。binary模式不对数据进行任何处理,asci模式将回车换行转换为本机的回车字符,比如Unix下是\n,Windows下是\r\n,Mac下是\r。unix系统下行结束符是一个字节,即十六进制的0A,而ms的系统是两个字节,即十六进制的0D0A。
所以当你用ascii方式从unix的ftp server下载文件时(不管是二进制或者文本文件,redhat的 vsftp默认是binary,ascii默认关闭),每检测到一个字节是0A,就会自动插入一个0D,所以如果你的文件是二进制文件比如可执行文件、压缩包什么的,就肯定不能用了。如果你的文件就是unix下的文本文件,你用 ascii模式是正确的,要是误用了binary模式,你在windows上看这个文件是没有换行的,里面是一个个的黑方块。 在用FTP客户端传输文件时,因为这些软件都做得比较智能化,它可以根据后缀,自动启用传输模式,所以不用担心出问题。
二、实例求证: 环境说明:192.168.133.34上有一FTP服务器端(windows版),FTP用户名为lgh,密码为www.jb51.net。该用户的根目录为D:\lgh。里面文件见下图。sql.rar是sql.bat的压缩文件,大家注意看图,我等下会在后面的实例中引用这个文件,把mget,get,prompt,bin,ascii等ftp命令诠释得一清二白。
实例一:直接BAT调用FTP命令 ftpbat.bat内容 (***大家建立bat文件不要命名为ftp.bat,执行时会有问题***) 复制代码 代码如下:
ftp open 192.168.133.34 lgh www.jb51.net get sql.rar bye
从图上的结果看,bat脚本直接调用xp的FTP命令是不行的,执行时H:\>ftp会一直死循环。我这里的XP系统是SP3的,其它版本的,我没有作测试。如果有不同,欢迎大家留言告之。
实例二:用put,get上传,下载单个文件 把XP机器上H:\js目录下文件flower.zip上传到FTP服务器 把FTP服务器中的sql.rar文件下载到XP机器上的H:\JS目录 ftp-get-put.bat内容如下: 复制代码 代码如下:
@echo off set ftpfilename=autoftp.cfg echo open 192.168.133.34 >"%ftpfilename%" echo lgh >>"%ftpfilename%" echo www.liuguohua.com >>"%ftpfilename%" echo bin >>"%ftpfilename%" echo lcd h:\js >>"%ftpfilename%" echo get sql.rar >>"%ftpfilename%" echo put flower.zip >>"%ftpfilename%" echo bye >>"%ftpfilename%" ftp -s:"%ftpfilename%" del "%ftpfilename%"
我们来看看结果,见下面两张图。从XP系统上看,H盘的JS目录,多了个sql.rar,FTP服务器上的根目录多了个flower.zip,这说明,刚才的脚本完成正常的执行了,达到了预期的目的。
实例三:用put,get上传,下载多个文件 在XP机器上把flower.zip复制一次,改名为flower2.zip 在XP机器上把把第二次实例下载的sql.rar文件删除,以免影响到本次操作 在FTP服务器上把第二次实例上传的flower.zip文件删除,以免影响到本次操作 把XP机器上H:\js目录下文件flower.zip 和flower2.zip上传到FTP服务器 ftp-get-put-many.bat内容如下: 复制代码 代码如下:
@echo off set ftpfilename=autoftp.cfg echo open 192.168.133.34 >"%ftpfilename%" echo lgh >>"%ftpfilename%" echo www.liuguohua.com >>"%ftpfilename%" echo bin >>"%ftpfilename%" echo lcd h:\js >>"%ftpfilename%" echo put flower.zip flower2.zip>>"%ftpfilename%" echo bye >>"%ftpfilename%" ftp -s:"%ftpfilename%" del "%ftpfilename%" 到FTP服务器上查看根目录,看flower.zip与flower2.zip是否已成功上传。从图上看,只成功上传了flower2.zip文件。
刚那个ftp-get-put-many.bat脚本里 echo put flower.zip flower2.zip>>"%ftpfilename%" flower2.zip是传输的最后一个文件,是不是用put时,意味着bat在处理上传时,只认最后一个文件呢。我们再多加个文件flower3.zip,来验证。
在XP机器上把flower.zip复制一次,改名为flower3.zip 在FTP服务器上把第二次实例上传的flower2.zip文件删除,以免影响到本次操作
ftp-get-put-many.bat内容修改如下:
复制代码 代码如下: @echo off set ftpfilename=autoftp.cfg echo open 192.168.133.34 >"%ftpfilename%" echo lgh >>"%ftpfilename%" echo www.liuguohua.com >>"%ftpfilename%" echo bin >>"%ftpfilename%" echo lcd h:\js >>"%ftpfilename%" echo put flower.zip flower2.zip flower3.zip>>"%ftpfilename%" echo bye >>"%ftpfilename%" ftp -s:"%ftpfilename%" del "%ftpfilename%"
结果,还是只成功上传了flower2.zip,因bat双击时,执行过程会一闪而过,我们看不到执行过程,到命令行去执行下,看到底出了什么问题。
命令行,执行ftp-get-put-many.bat脚本,从执行情况看,flower.zip三个文件都是put的,但在传输时,却只传了flower2.zip,真不解,有知道的朋友吗?给点方向 再换个方式,用通配符*,试试。 ftp-get-put-many.bat内容修改如下:
复制代码 代码如下: @echo off set ftpfilename=autoftp.cfg echo open 192.168.133.34 >"%ftpfilename%" echo lgh >>"%ftpfilename%" echo www.liuguohua.com >>"%ftpfilename%" echo bin >>"%ftpfilename%" echo lcd h:\js >>"%ftpfilename%" echo put flower*.zip >>"%ftpfilename%" echo bye >>"%ftpfilename%" ftp -s:"%ftpfilename%" del "%ftpfilename%"
在FTP服务器上把上传的flower文件全部删除,以免影响到本次操作 执行ftp-get-put-many.bat,结果只有flower.zip文件上传成功了。呵,flower3.zip文件,怎么都不能上传。???