batftp上传
实例一 直接BAT调用FTP命令 ftpbat bat内容 (***大家建立bat文件不要命名为ftp bat 执行时会有问题***)
复制代码 代码如下:
ftp open lgh get sql rar bye
从图上的结果看 bat脚本直接调用xp的FTP命令是不行的 执行时H:>ftp会一直死循环 我这里的XP系统是SP 的 其它版本的 我没有作测试 如果有不同 欢迎大家留言告之 实例二 用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 > %ftpfilename% echo lgh >> %ftpfilename% echo >> %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复制一次 改名为flower zip 在XP机器上把把第二次实例下载的sql rar文件删除 以免影响到本次操作 在FTP服务器上把第二次实例上传的flower zip文件删除 以免影响到本次操作 把XP机器上H:js目录下文件flower zip 和flower zip上传到FTP服务器 ftp get put many bat内容如下
复制代码 代码如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo put flower zip flower zip>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
到FTP服务器上查看根目录 看flower zip与flower zip是否已成功上传 从图上看 只成功上传了flower zip文件
刚那个ftp get put many bat脚本里echo put flower zip flower zip>> %ftpfilename% flower zip是传输的最后一个文件 是不是用put时 意味着bat在处理上传时 只认最后一个文件呢 我们再多加个文件flower zip 来验证
在XP机器上把flower zip复制一次 改名为flower zip在FTP服务器上把第二次实例上传的flower zip文件删除 以免影响到本次操作
ftp get put many bat内容修改如下
复制代码 代码如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo put flower zip flower zip flower zip>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
结果 还是只成功上传了flower zip 因bat双击时 执行过程会一闪而过 我们看不到执行过程 到命令行去执行下 看到底出了什么问题
命令行 执行ftp get put many bat脚本 从执行情况看 flower zip三个文件都是put的 但在传输时 却只传了flower zip 真不解 有知道的朋友吗?给点方向
再换个方式 用通配符* 试试 ftp get put many bat内容修改如下
复制代码 代码如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %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文件上传成功了 呵 flower zip文件 怎么都不能上传 ???
其实用put传输多个文件 完全可用重复的方式取代 比如 ftp get put many bat内容修改如下
复制代码 代码如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo put flower zip >> %ftpfilename% echo put flower zip >> %ftpfilename% echo put flower zip >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
实例四 用mput mget上传 下载多个文件 在FTP服务器上删除有关flower的文件ftp mget mput many bat内容如下:
复制代码 代码如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo mput flower zip flower zip flower zip>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
双击ftp mget mput many bat后 发现系统弹出一窗口后 就卡住了 停止不前
原因是用了mput命令 但没有用Prompt关闭交互
ftp mget mput many bat内容修改如下:
复制代码 代码如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo Prompt >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo mput flower zip flower zip flower zip>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
再次执行ftp mget mput many bat 结果见下图
用通配符*试试在FTP服务器上删除有关flower的文件ftp mget mput many bat内容修改如下:
复制代码 代码如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo Prompt >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo mput flower* zip >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
照样成功上传有关flower* zip文件 因为结果与上一步是一样的 所以就不抓图了 实例五 用ascii在windows系统间传输非文本文件 把XP电脑上的rmb jpg通过ascii传到FTP服务器的根目录
ftp get ascii bat内容修改如下:
复制代码 代码如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo lgh >> %ftpfilename% echo >> %ftpfilename% echo ascii >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo put rmb jpg>> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
执行ftp get ascii bat后 发现rmb jpg可以正常上传 并且可以正常打开 那 这个现象与前面所以的ascii不能传输非文本东西有出入 这是怎么回会事呢 这是因为 FTP服务器是WINDOWS系统 XP电脑上的bat脚本也是在windows系统上运行的 所以bat在windows系统里用FTP传输文件 不管是用ascii 还是用binary 都是可以的 接下来我们再做一个实验 FTP服务器选centos 再测下ascii传输非文本文件问题 实例六 用ascii在windows系统与linux系统间传输非文本文件 在RHEL 位系统上建立一vsftpd服务器 上面说过redhat默认启用二进制传输 关闭了ascii码传输 所以我们还要修改一下vsftpd的配置文件 修改/etc/vsftpd/nf文件 允许客户端进行ascii传输 并重启vsftpd
把rmb jpg放到FTP服务器 大家注意下H:js目录下只有ftp getascii bat文件
ftp getascii bat文件内容修改如下
复制代码 代码如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo ftp >> %ftpfilename% echo redhat >> %ftpfilename% echo asc >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo get rmb jpg >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
执行ftp getascii bat 看结果 rmb jpg文件有下载到XP电脑里 双击这个文件 发现图像乱码 文件被破坏了 都是ascii码传输惹的祸换bin传输 测试一下在XP电脑上删除rmb jpg文件 再双击ftp getascii bat文件 去从LINUX的FTP服务器下载一个rmb jpg文件
修改ftp getascii bat 把ascii改给二进制传输
复制代码 代码如下:
@echo off set ftpfilename=autoftp cfg echo open > %ftpfilename% echo ftp >> %ftpfilename% echo redhat >> %ftpfilename% echo bin >> %ftpfilename% echo lcd h:js >> %ftpfilename% echo get rmb jpg >> %ftpfilename% echo bye >> %ftpfilename% ftp s: %ftpfilename% del %ftpfilename%
结果 文件正常下载 图像也显示正常 lishixin/Article/program/qrs/201401/30223
② 求大神们写一个从本地上传到FTP的bat
Allway Sync
③ 用批处理,将一个文件夹里面的文件自动上传到ftp上
此项操作需要制作两个文件。
第一个文件(批处理文件):ftp.bat
ftp-s:ftp.ftp
(ping127.0.0.1-n2)>nul
%0
第二个文件(ftp脚本)ftp.ftp
open10.10.10.10
userUSERNAME
PASSWORD
lcd"D:ftp"
put*.txt
!mv"D:ftp*.txt""D:ftpak"
bye
将ftp.bat和ftp.ftp放置到一个文件夹内,使用时双击ftp.bat。
该脚本调用ftp.ftp,将"D:ftp”中的所有txt结尾的文件,上传到"ftp://10.10.10.10/sys"文件夹中,然后执行备份"D:ftp*”到"D:ftpak"。每次操作完成后延迟1秒后重新执行。
ftp用户名和密码,在ftp.ftp的第二、三行更改(大写的部分分别是账户和密码,若ftp是匿名访问,则用户名、密码均为anonymous)。
每次操作的延迟时间在ftp.bat第二行更改(更改-n 2的值为需要延迟的时间+1,时间单位为1秒)。
④ 怎样用bat上传文件到ftp
参照:.netrc文件格式:
open
ip
用户名
密码
bin
mput
d:\aa\目录下的txt文件
close
bye
以上内容建立一个文件,使用:
ftp
-i
-s:文件名
方式做计划任务调用,就可以了。
⑤ 请问自动上传特定目录到FTP服务器的BAT批处理怎样写
您可以使用cmd环境的rar,对所有B00n文件夹下的C003进行整体打包,然后上传各个打包的rar文件,我假定您AAA目录下所有B大头的目录都有C003子目录,并且都要备份上传。这个rar工具可以在winrar的安装目录下找到,拷贝到AAA目录下就行了。
按您的描述,增量备份用批处理可能会比较麻烦,我下面帮您写的是全量备份的,不过rar做的压缩包会保持文件的完整目录结构。
把下面的命令存为批处理文件:my_ftp_put_C003.bat,这个bat文件要放在AAA目录下。
@echo off
@set d=E:\AAA
@cd /d %d%
rem 下面三行是ftp的IP、用户名、密码,请自行替换
@set ftpip=127.0.0.1
@set ftpusr=username
@set ftppwd=password
@for /f "delims=" %%i in ('dir B* /ad /b') do @rar a AAA_%%i_C003.rar %%~fi\C003
@echo open %ftpip%>%d%\tmp.ftp
@echo %ftpusr%>>%d%\tmp.ftp
@echo %ftppwd%>>%d%\tmp.ftp
@for /f "delims=" %%i in ('dir AAA_B*.rar /b') do @echo put %%i >>%d%\tmp.ftp
@echo quit >>%d%\tmp.ftp
@ping -n 2 127.0.0.1 >nul
@ftp -s:%d%\tmp.ftp
@del %d%\tmp.ftp
上面有几行,在注释后面是ftp的ip地址、用户名、密码,您要改成您自己的。
以上批处理我已经在Win10+ftp的环境下测试过了,希望对您有帮助。
⑥ 如何写一个bat批处理自动上传文件到SFTP
@echo off::地址set ftpadd=192.168.0.3::用户名set user=admin::密码set pw=pass::ftp临时文件set tmpftp=%temp%\tmp_ftp%Random%.tempmd d:\temp >nul:up::建立测试文件 文件名自增1echo %date% %time% >d:\temp\a%num%.txt::生成ftp上传 %1 是要上传的文件路径call :login d:\temp\a%num%.txt::开始上传并生成,日志 ,当前目录 ftpt.log 为日志文件ftp -s:%tmpftp% >>ftpt.logecho ----------%time%--------->>ftpt.log::删除临时文件del /q/f %tmpftp%set /a num+=1echo 上传 a%num%.txt::延时ping /n 10 127.1 >nulgoto up ::生成ftp上传文件:login(echo open %ftpadd%echo %user%echo %pw%echo pwdecho put %1echo bye)>>%tmpftp%goto :eof
这是我模拟的代码,你可以改下。
⑦ 想做一个批处理 将指定文件用FTP上传
时间晚了好久,不知道到还有用没,希望有用的可以拿来参考
目的监控路径下面文件,上传到指定FTP。上传完毕后文件备份。
方法个人运用两个bat第一个监控,第二个FTP上传
1.监控。放到你要监控的文件夹路径下面建立start.bat 下面是我放的内容。
@echo off
:memu
for /f "delims=" %%a in ('dir /a-d/b *.zip') do (
if not [%%a]==[] (
echo %time%发现:%%a
)
)
start "" Q:BCPbackupftpceshiftpuploud.bat
ping 127.0.1 -n 60 >nul
goto memu
在段中,你要监控的文件类型就是*.zip。可以改成你需要的比如*.jpg等
删除临时文件,退出
然后1在监控,有文件后启动FTP上传完成后退出
这里我没有找到决绝办法的是FTP上传完的文件如何改名。有知道的大神告诉一下别太难
⑧ 如何写一个bat批处理自动上传文件到FTP
@EchoOff
Echoopen10.80.138.16>ftp.up
EchoFTP_Admin>>ftp.up
EchoPassword11>>ftp.up
EchoCd.User>>ftp.up
Echobinary>>ftp.up
Echoput"D:UserListUser.csv">>ftp.up
Echobye>>ftp.up
FTP-s:ftp.up
delftp.up/q
Pause
直接写好了.请测试.
以上代码经测试可用.