请问自动上传特定目录到FTP服务器的BAT批处理怎样写?

大神,您好!我想定期增量将特定的目录上传到FTP服务器上某个目录下,请问如何写批处理?我描述下具体要求:
源目录结构为:E:\AAA\B001\C001,C002,C003,第一层目录AAA固定不变,第二层目录B001不断增加,第三层有多个目录,但是我只需要备份C003这个目录到FTP上(每个B***下都有一个C003),但是C003下的文件也是持续增加的(旧的B***下的C003下文件也会增加),上传到FTP上upload目录下时要保持源目录的目录结构,请问以上要求批处理能实现吗?非常感谢!

您可以使用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的环境下测试过了,希望对您有帮助。追问

非常感谢您的用心回答!
因为我是上传到客户的FTP目录,所以不能进行压缩处理,经过与客户沟通,他们说可以不用保持目录结构,直接上传每个C003目录(每个B***下都有一个C003)下的文件上去就可以了,看看这样是不会好操作些?就是遍历每个B***下的C003目录,将文件传到FTP的upload目录下,关于增量上传的问题,是否可以让文件在上传时跳过相同的文件来解决?谢谢!

追答

增量有一个办法可以简单实现,就是每一个传过的文件,都修改一下文件名,统一加一个“_ftp”之类的后缀,上传文件把有后缀的过滤掉就行了。不过文件能否改名要看您那边是否允许了。
以下是全量更新的,C003目录结构也保存了。
@echo off
@set d=E:\AAA
@cd /d %d%
rem 下面三行是ftp的IP、用户名、密码,请自行替换
@set ftpip=127.0.0.1
@set ftpusr=username
@set ftppwd=password
@echo open %ftpip%>%d%\tmp.ftp
@echo %ftpusr%>>%d%\tmp.ftp
@echo %ftppwd%>>%d%\tmp.ftp
@echo prompt>>%d%\tmp.ftp
@for /f "delims=" %%i in ('dir B* /ad /b') do (
@echo mkdir %%i
@echo mkdir %%i\C003
@cd %%i\C003
@echo mput %d%\%%i\C003\*.*
@cd /
)
@echo quit >>%d%\tmp.ftp
@ping -n 2 127.0.0.1 >nul
@ftp -s:%d%\tmp.ftp
@del %d%\tmp.ftp

温馨提示:内容为网友见解,仅供参考
无其他回答

请问自动上传特定目录到FTP服务器的BAT批处理怎样写?
把下面的命令存为批处理文件: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') ...

自动上传某文件进入FTP服务器的批处理命令怎么写
rem ---脚本开始--- @echo off set ftpfile=putfiles.ftp set logfile=putfiles.log echo open 192.168.0.1 > "%ftpfile%" rem 把下面行中的 username和password改为你的用户名和密码 echo user username password >> "%ftpfile%" rem --- echo bin >> "%ftpfile%" rem 进入FTP ser...

如何写一个bat批处理自动上传文件到FTP
Echo OffEcho open 10.80.138.16 >ftp.upEcho FTP_Admin >>ftp.upEcho Password11 >>ftp.upEcho Cd .\\User >>ftp.upEcho binary>>ftp.upEcho put "D:\\User List\\User.csv">>ftp.upEcho bye>>ftp.upFTP -s:ftp.updel ftp.up \/qPause直接写好了.请测试.以上代码经测试可用.

想做一个批处理 将指定文件用FTP上传
在段中,你要监控的文件类型就是*.zip。可以改成你需要的比如*.jpg等 若发现了你需要的文件则则运行start 后边的文件,这个路径可以自己配置,运行的bat就是FTP上传的批处理 ping 127.0.1 -n 60 >nul 是循环时间,60秒后goto memu 再次从头开始 2.批处理FTP上传这里我用的名称是ftpuploud.bat。

如何用批处理将指定文件或文件夹上传至FTP指定目录
参考一下:@echo offecho 123>ftp.txtecho 123>>ftp.txtecho bin>>ftp.txtprompt>>ftp.txtecho mput .*>>ftp.txtecho bye>>ftp.txtftp -i -s:ftp.txt 192.168.1.200把上述代码保存为bat文件,放到C:\\\\123中执行。

将文件夹上传至ftp服务器的批处理程序怎么写
先生成一个配置文件d:\\ ftpcommand.txt,内容如下:open 主机ip 例:10.1.2.3 username 例:root password 例:root prompt off mput filename 可使用通配符或多个文件名 如果需要的话可能还要更改当前路径 然后在命令行运行:ftp -s:"d:\\ ftpcommand.txt"...

如何用批处理将指定文件或文件夹上传至FTP指定目录
也谢谢朴の子给出的参考@echo offset Folder=C:\\\\123cd \/d \\"%Folder%\\"set FtpFile=%temp%\\\\Temp.txt>\\"%FtpFile%\\" echo 123>>\\"%FtpFile%\\" echo 123>>\\"%FtpFile%\\" echo bin>>\\"%FtpFile%\\" echo mput *.*>>\\"%FtpFile%\\" echo byestart ftp -v -i -s:\\"%Ftp...

怎么写一个批处理文件bat,充A的ftp取文件,上传到B的FTP,就是ftp之间的...
168.2.222set u2=userset p2=password(echo open %s1%echo %u1%echo %p1%echo cd testecho binecho get test.rarecho quit)>ftp1.txt(echo open %s2%echo %u2%echo %p2%echo cd testecho binecho put test.rarecho quit)>ftp2.txtftp -s:ftp1.txtftp -s:ftp2.txtdel ftp?.txt ...

求一段windows dos命令上传文件到FTP 的bat脚步,最好有注释,谢谢1_百度...
批处理中的命令是:ftp -s:ftpcmd.txt 另外需要编辑一个ftpcmd.txt文件(也可以修改为其它名字),文件的内容就是你手工上传文件输入的所有内容,可能如下:open 192.168.0.1ftpuserftppassbiput abc.rar1行连接FTP服务器 2行输入登录用户 3行输入登录密码 4行选择二进制方式 5行上传指定文件 ...

批处理自动更新本地外网IP到远程FTP服务器
(1)新建一个*.bat文件,比如abc.bat---文件名不要起成关键字的名字,否则运行不了!(2)*.bat文件的内容是: ftp -s:Commands.txt!(3)在相同的目录下创建Commands.txt!(4)Commands.txt的内容是:ftp 111.111.111.222(ftp服务器的地址)song 0000 put a.txt ---a.txt 是指定要上传的文...

相似回答